繁体   English   中英

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

[英]Java Try-Catch - how does it execute?

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

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

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中工作的更多信息,请阅读本教程

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

如果你有10个子句而最后一个抛出错误,那么前9个执行的修改将不会被“恢复”!

可以给出一些程序无法处理的意外结果的代码保存在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
 }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM