我的项目中有这样的代码:

try {
    downloadFile();
    unzipFile();
} catch (IOException e) {
    System.out.println("Can't download file!");
    e.printStackTrace();
}


方法downloadFile()解释异常IOException,方法unzipFile()根本不引发任何异常。

现在,我正在尝试调试此代码,我的方法downloadFile()可以正常工作,因此我想对其进行注释,并查看方法unzipFile()的工作方式。我们还假设文件大小为100 Mb :)

当我用'downloadFile()'注释行时,出现此错误:


  IOException的无法访问的块。永远不会从try语句主体中抛出此异常


为了调试我的代码,我要插入如下代码

if (true) return;


在方法downloadFile()中,然后将其删除。

我确定我做错了方法。
您能否举个例子说明一下Java大师在这种情况下的表现。
谢谢。

最佳答案

正如罗布(Rob)在评论中提到的,测试测试特定的事物/方法/行为。如果要测试unzipFile,请为unzipFile写一个可重现的测试用例,不要与其他任何可能引起问题的东西(例如downloadFile)搞混。然后,使用已知的输入和输出数据测试unzipFile

换句话说,如果要测试unzipFile,请对其进行测试,而不要对其他所有内容进行测试。

我认为,除了目前为您提供的一个简单解决方案之外,还可以这样做:

try {
    downloadFile();
} catch (IOException e) {
    System.out.println("Can't download file!");
    e.printStackTrace();
}
unzipFile();


这样您就可以轻松注释掉整个try / catch块

07-28 03:37