JAVA中try catch方法详细详解,你真的了解它吗?有哪些注意事项-java try catch finally用法

在程序执行过程中常常会有一些已知或未知的错误,如果不处理就会致使整个软件崩溃,无法正常使用,而try catch可以很好的解决这方面的问题。

语法格式:

try{//有可能出现异常的代码块}catch(Exceptione){//抛出异常后所要处理逻辑}finally{//有无异常都要执行的代码块}

注:catch与finally至少要有一个。

下面通过几个实例来讲解使用方法及注意事项。

实例1:try catch基础用法

try{//0为除数报ArithmeticException错误inta=1/;}catch(ArithmeticExceptione){//已知错误处理逻辑 e.printStackTrace();//异常的类型、性质、栈层次及出现在程序中的位置return”0不能为除数”;}catch(Exceptione){//最后判断//通用错误类型e.printStackTrace();return”未知错误”;}return”成功处理”;

要根据实际需求来处理错误逻辑,如果错误不确定可使用Exception。可以有多个catch,出现错误catch会从上到下匹配,匹配到其他的catch不会被执行。如果有使用Exception要放到最后。

实例2:try catch finally执行优先级

@Testpublicvoidtest(){System.out.println(getMsg());}StringgetMsg(){try{inta=1/;}catch(Exceptione){System.out.println(“出现错误”);return”失败”;}finally{System.out.println(“大喊一声”);}return”成功处理”;}

输出内容:

出现错误

大喊一声

失败

finally优先级高于catch中的return,但低于catch中的其他方法。如果程序中 a=1/0改为 a=1/1,方法就不会触发错误catch块,但finally是要被执行,即使return 在try区域块也是finally先被执行,最后return返回数据。

a=1/0改为 a=1/1输出结果:

大喊一声

成功处理

如果程序没有执行到try就已经执行return了,finally不会被执行。

实例3:在finally中修改返回变量值会怎样?

@Testpublicvoidtest(){System.out.println(getMsg2());}StringgetMsg2(){Stringmsg=”初始值”;try{returnmsg;}finally{System.out.println(“执行finally”);msg=”我被改了”;}}

输出结果:

执行finally

初始值

msg值虽然在finally区域被修改,但在try 的return里变量值已经被固定了,所以在这里修改不影响返回结果,如果想改变结果只能在finally区块return,或者把try中的return放到程序末尾,如下面代码:

StringgetMsg2(){Stringmsg=”初始值”;try{//其他程序逻辑}finally{System.out.println(“执行finally”);msg=”我被改了”;}returnmsg;}

实例4:在try中出现System.exit(0);finally不会执行

try{System.out.println(“执行try”);System.exit();}finally{System.out.println(“执行finally”);}

System.exit(0)会终止程序,它后面的所有代码都不会被执行,所以finally也就不会再被执行。

finally可以使用在很多场景,如关闭文件、关闭连接、释放线程等操作。

JAVA中try catch方法详细详解,你真的了解它吗?有哪些注意事项-java try catch finally用法

免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:JAVA中try catch方法详细详解,你真的了解它吗?有哪些注意事项-java try catch finally用法 https://www.bxbdf.com/a/147591.shtml

上一篇 2023-08-07 07:47:04
下一篇 2023-08-07 07:58:28

猜你喜欢

联系我们

在线咨询: QQ交谈

邮件:362039258#qq.com(把#换成@)

工作时间:周一至周五,10:30-16:30,节假日休息。