Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异常和日志记录_Java_Exception Handling - Fatal编程技术网

Java 异常和日志记录

Java 异常和日志记录,java,exception-handling,Java,Exception Handling,我有一个父类“downloadmanagerrapper.java”,我正在调用“DownloadManager.java”中的一个方法。如果出现异常,我想抛出异常并停止程序执行,同时我想使用log4j将错误记录在日志文件中 我正在从downloadDataCore()方法调用cacheUploadLog(intfcode,bankId)方法。所以我觉得我在两个地方记录了相同的错误: 从cacheUploadLog()方法 在捕获由cacheUploadLog()方法引发的异常后的downlo

我有一个父类“downloadmanagerrapper.java”,我正在调用“DownloadManager.java”中的一个方法。如果出现异常,我想抛出异常并停止程序执行,同时我想使用log4j将错误记录在日志文件中

我正在从
downloadDataCore()
方法调用
cacheUploadLog(intfcode,bankId)
方法。所以我觉得我在两个地方记录了相同的错误:

  • cacheUploadLog()
    方法
  • 在捕获由
    cacheUploadLog()
    方法引发的异常后的
    downloadDataCore()
是否需要在
downloadDataCore()
方法中包含
try
catch

请提供您的建议,并在这里帮助我处理异常和处理

下载managerwrapper.java DownloadManager.java
如果您希望记录参数值以进行调试,您可以在
downloadDataFromCore
中设置一个try catch块,记录这些参数并抛出异常。否则,它不是必需的,因为该方法已引发异常。

首先,尝试修复此问题:-

DownloadManager manager = new DownloadManager().downloadDataFromCore(intfCodeFromDB, bankId, downloadId);
这是我见过的最奇怪的方法调用,有这样的签名

public String downloadDataFromCore(String intfcode, String bankId,
                            String downloadId)

接下来,来回答你的问题。由于您希望同时记录错误,然后出于某种原因再次抛出错误,因此需要在方法中设置
try catch
。否则,这不是必须的,因为该方法已经有了抛出异常的
throws
子句。

@Ravindra.downloadDataFromCore方法将包含一些可能出现异常的其他逻辑。在这种情况下,我需要在downloadDataFromCore中使用try和catch,对吗?编辑我的问题。对。但是,您可能希望捕获另一段代码将引发的一些其他异常。无需专门捕获
DownloadCoreDataException
并再次抛出它。是的,我将更改方法signatore并调用。我已经编辑了我的问题。
DownloadManager manager = new DownloadManager().downloadDataFromCore(intfCodeFromDB, bankId, downloadId);
public String downloadDataFromCore(String intfcode, String bankId,
                            String downloadId)