Java Try-Catch - 它是如何执行的?

时间:2012-11-02 19:31:03

标签: java try-catch

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

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

4 个答案:

答案 0 :(得分: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中工作的更多信息,请阅读此tutorial

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

例如:

 int a;
 try {
  a=1/0;//program wil crash here
 }catch(Exception e){
  System.out.println("Division by zero ");//handling the crash here
 }

答案 3 :(得分:0)

它开始正常执行,没有任何检查。如果发生任何异常,它将突破该子句(如循环中的break),并立即执行catch,如果没有找到异常,它将跳过catch子句。

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