我只是想知道Java VM使用Try-Catch做了什么。它是如何执行的?
我最好的猜测是,它就像一个Linux系统,在安装时会运行测试,如果没有发现错误,则会询问用户是否要继续。在Try-Catch的情况下,它是否进行测试运行,如果一切正常,请实现它吗?
答案 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
子句确保无论是否抛出异常都会调用它。一个实际的例子是从文件或网络读取,并关闭流,无论是否抛出异常。