4

我只是想知道 Java VM 对 Try-Catch 做了什么。它是如何执行的?

我最好的猜测是,它就像一个 Linux 系统,在安装某些东西时会进行测试运行,如果没有发现错误,则询问用户是否要继续。在 Try-Catch 的情况下,它是否会进行测试运行,如果一切正常,是否执行它?

4

4 回答 4

4
try
{
//execute your code
}catch(Exception e)
{
//Log message 
//IF you don't want to continue with the logic inside method, rethrow here.
}finally{
 //Ir-respective of what the status is in above cases, execute this code.
}
//Continue with other logic in the method

.这在您想确定部分代码需要执行(或)不在异常情况下的情况下很有用。

要了解有关 try-catch 在 java 中如何工作的更多信息,请阅读本教程

于 2012-11-02T19:32:38.487 回答
4

它比这简单得多 - 如果 try 子句中包含的任何子句产生错误,则将执行 catch 子句中的代码(对应于该错误 - 一次尝试可以有多个 catch)将被执行。没有办法提前知道某个特定子句是否会失败,只能在错误发生后尝试恢复。

如果你有十个子句并且最后一个抛出错误,那么前 9 个执行的修改将不会被“还原”!

于 2012-11-02T19:34:27.097 回答
1

可以给出一些程序无法处理的意外结果的代码被保存在 try 块中,并且为了处理/捕获程序的意外崩溃,我们使用 catch 块。我们声明代码可以抛出的异常类型

例如:

 int a;
 try {
  a=1/0;//program wil crash here
 }catch(Exception e){
  System.out.println("Division by zero ");//handling the crash here
 }
于 2012-11-02T19:35:37.837 回答
0

它开始正常执行,无需任何检查。如果发生任何异常,它将跳出子句(就像break在循环中),并立即执行catch,如果没有发现异常,它将跳过 catch 子句。

finally子句确保无论是否抛出异常都会调用它。一个实际的例子是从文件或网络中读取,并关闭流,无论是否抛出异常。

于 2012-11-02T19:51:04.867 回答