我的项目中有这样的代码:
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块