Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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
try-catch中的注释代码,Java_Java_Debugging_Comments_Try Catch - Fatal编程技术网

try-catch中的注释代码,Java

try-catch中的注释代码,Java,java,debugging,comments,try-catch,Java,Debugging,Comments,Try Catch,我的项目中有这样一段代码: try { downloadFile(); unzipFile(); } catch (IOException e) { System.out.println("Can't download file!"); e.printStackTrace(); } 方法downloadFile()trhows exceptionIOException,方法unzipFile()根本不会引发任何异常 现在我正在调试这段代码,我的方法downloa

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

try {
    downloadFile();
    unzipFile();
} catch (IOException e) {
    System.out.println("Can't download file!");
    e.printStackTrace();
}
方法
downloadFile()
trhows exception
IOException
,方法
unzipFile()
根本不会引发任何异常

现在我正在调试这段代码,我的方法
downloadFile()
工作得很好,所以我想对它进行注释,看看方法
unzipFile()
是如何工作的。我们还假设文件大小为100 Mb:)

当我用“
downloadFile()
”注释行时,我得到以下错误:

IOException的不可访问块。决不会从try语句体引发此异常

为了调试我的代码,我插入了一行

if (true) return;
方法
下载文件()
,然后将其删除

我肯定我做得不对。
你能给我举个例子说明java大师在这种情况下的表现吗。
谢谢

错误本身表示“IOException的所有块不可访问。此异常从不从try语句体引发”


正如您所说,您的
unzipFile()
方法不会引发任何异常,那么为什么要用
try..catch来包装它呢?只需删除或注释,然后尝试..catch()来运行/调试它。这只是在代码中写入
unzipFile()
,没有其他内容。如果
unzipFile()
依赖于
downloadFile()
,则可能会导致错误。

错误本身表示所有“IOException无法访问的块。此异常从不从try语句体引发”


正如您所说,您的
unzipFile()
方法不会引发任何异常,那么为什么要用
try..catch来包装它呢?只需删除或注释,然后尝试..catch()来运行/调试它。这只是在代码中写入
unzipFile()
,没有其他内容。如果
unzipFile()
依赖于
downloadFile()
,则可能会导致错误。

您不应该注释掉
downloadFile()
。消息告诉您的是事实:try块中没有代码抛出该异常


对于这类事情,我通常使用带有调试器的IDE。您可以使用Eclipse或NetBeans;我更喜欢Jet Brains的IntelliJ。

你不应该评论掉
下载文件()
。消息告诉您的是事实:try块中没有代码抛出该异常


对于这类事情,我通常使用带有调试器的IDE。您可以使用Eclipse或NetBeans;我更喜欢Jet Brains的IntelliJ。

如果你有合适的工具,通常你不需要评论任何东西。例如,你在解压ZipFile时犯了一个错误。你的IDE将显示一个堆栈跟踪。如果单击堆栈跟踪中的位置,则在标记行时发生错误时,将自动获取文件


如果可以重现此错误,则可以在此行之前设置断点,以检查变量和类属性。如果您确定了导致问题的块,您可以在该块之前设置一个断点,依此类推。

如果您有合适的工具,通常不需要注释任何内容。例如,你在解压ZipFile时犯了一个错误。你的IDE将显示一个堆栈跟踪。如果单击堆栈跟踪中的位置,则在标记行时发生错误时,将自动获取文件


如果可以重现此错误,则可以在此行之前设置断点,以检查变量和类属性。如果您确定了导致问题的块,您可以在该块之前设置一个断点,依此类推。

如果您注释掉
downloadFile()
,您还应该注释掉try-catch块,因为它不再捕获任何内容。

如果注释掉
downloadFile(),您还应该注释掉try-catch块,因为它不再捕获任何内容。

正如Rob在注释中提到的,测试特定的东西/方法/行为。如果您想测试
unzipFile
,那么就为
unzipFile
编写一个可复制的测试用例,不要弄乱任何可能有自身问题的东西(例如
downloadFile
)。然后,使用已知的输入和输出数据测试
unzipFile

换句话说,如果您想测试
unzipFile
的话,那么就测试它,而不是测试它的所有内容

除此之外,我认为目前对您来说,一个简单的解决方案是:

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

因此,您可以轻松地注释掉整个try/catch块,正如Rob在注释中提到的,测试测试特定的事物/方法/行为。如果您想测试
unzipFile
,那么就为
unzipFile
编写一个可复制的测试用例,不要弄乱任何可能有自身问题的东西(例如
downloadFile
)。然后,使用已知的输入和输出数据测试
unzipFile

换句话说,如果您想测试
unzipFile
的话,那么就测试它,而不是测试它的所有内容

除此之外,我认为目前对您来说,一个简单的解决方案是:

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

因此,您可以很容易地注释掉整个try/catch块。

如果您确信方法(unzipFile())不会引发任何异常,为什么要使用try/catch。

如果您确信方法(unzipFile())不会引发任何异常,为什么要使用try/catch。

为什么不单独为
unzipFile()
编写一个测试呢?理想情况下是一个可重复的测试。为什么不单独为
unzipFile()
编写一个测试呢?理想情况下是一个可重复的测试。是的,当然——错误本身说明了一切。我想知道,有没有什么方法可以逃避注释-取消注释的过程。无论如何,现在我知道做我想做的事情的唯一方法——不仅是评论downloadFile(),而且还有try、catch等等。这并不方便……是的,当然——错误本身就说明了一切。我想知道,有没有什么方法可以逃避注释-取消注释的过程。无论如何,现在我知道做我想做的事情的唯一方法——不仅是评论downloadFile(),而且还要评论try、catch等等