我有一个父类“DownloadManagerWrapper.java”,我正在调用“DownloadManager.java”中的方法。我想抛出异常并暂停程序执行,如果有异常,同时我想使用log4j在日志文件中记录错误。
我正在使用cacheUploadLog(intfcode,bankId)
方法调用downloadDataCore()
方法。所以我觉得我在两个地方记录了相同的错误:
cacheUploadLog()
方法downloadDataCore()
方法引发的异常后,在cacheUploadLog()
中是否需要在try
方法中阻止catch
和downloadDataCore()
?
请提供您的建议并帮助我处理异常和处理。
public static void readInterfaceConfig(String intfCode, String bankId,String downloadId) {
DownloadManager manager = new DownloadManager();
manager.downloadDataFromCore(intfCodeFromDB, bankId, downloadId);
}
public String downloadDataFromCore(String intfcode, String bankId, String downloadId) throws DownloadCoreDataException {
try
{
// here it contain some other code. formatting code, splitting, and other logic. may be a chance there might exception arise here.
cacheUploadLog(intfcode, bankId);
cacheDownloadConfig(intfcode, bankId);
} catch (DownloadCoreDataException exception) {
errorLogger.error("Error in downloaddatafromcore method", exception);
throw new DownloadCoreDataException("Error in downloaddatafromcore method", exception);
}
}
private void cacheUploadLog(String intfcode, String bankId) throws DownloadCoreDataException {
try{
String lastDownloadedTime = getLastDownloadedTime(intfcode, bankId);
} catch (Exception exception) {
errorLogger.error("Error in getting primary_key from update_log table",exception);
throw new DownloadCoreDataException("Error in getting primary_key " +
"from update_log table",exception);
}
}
答案 0 :(得分:1)
如果您想要记录参数值以进行调试,则可以在downloadDataFromCore
中设置 try-catch 块并记录这些参数并抛出例外。否则它不是必需的,因为该方法已经抛出异常。
答案 1 :(得分:0)
首先,尝试解决这个问题: -
DownloadManager manager = new DownloadManager().downloadDataFromCore(intfCodeFromDB, bankId, downloadId);
这是我见过的最奇怪的一个方法,有这样的签名。
public String downloadDataFromCore(String intfcode, String bankId,
String downloadId)
接下来,回答你的问题。既然你想记录错误然后由于某种原因再次抛出它,你需要在方法中有try-catch
。否则,它不是必需的,因为该方法已经有throws
子句抛出异常。