公司网站维护费大概需要多少,wordpress手机端和pc端兼容,淘宝官网登录入口,外贸网站cms系统Java finally catch try关键字
finally#xff1a;
finally 关键字用来创建在 try 代码块后面执行的代码块#xff1b;无论是否发生异常#xff0c;finally 代码块中的代码总会被执行。 在 finally 代码块中#xff0c;可以进行文件流关闭等收尾善后性质的语句
catch
finally 关键字用来创建在 try 代码块后面执行的代码块无论是否发生异常finally 代码块中的代码总会被执行。 在 finally 代码块中可以进行文件流关闭等收尾善后性质的语句
catch
catch 关键字用于捕获异常并处理异常的代码块通常与try关键字一起使用可以使用多个 catch 代码块对异常进行多重捕获
try
try 关键字用于包裹可能会抛出异常的代码块
使用示例
try{// 程序代码
}catch(异常类型1 异常的变量名1){// 程序代码
}catch(异常类型2 异常的变量名2){// 程序代码
}catch(异常类型3 异常的变量名3){// 程序代码
}finally{// 程序代码如关闭文件流等善后操作
}上述代码也可以改写成下面这种try-with-resources格式
try (resource declaration) {// 使用的资源
} catch (ExceptionType e) {// 异常块
}try-with-resources
try-with-resources是一种异常处理机制它能够自动关闭在 try 块中声明的资源无需显式地在 finally 块中关闭JDK7 之后
常见面试题
finally 和 catch代码块中return的执行顺序问题
public static void main(String[] args) {System.out.println(a());System.out.println(-----------------);System.out.println(b());System.out.println(-----------------);System.out.println(c());}private static int a() {try{System.out.println(1/0);}catch(Exception e){System.out.println(catch is begin);return 1 ;}finally{System.out.println(finally is begin);}return 0;}private static int b() {try{//待捕获代码System.out.println(1/0);}catch(Exception e){System.out.println(catch is begin);return 1 ;}finally{System.out.println(finally is begin);return 2 ;}}private static int c() {try{//待捕获代码System.out.println(1/1);}catch(Exception e){System.out.println(catch is begin);return 1 ;}finally{System.out.println(finally is begin);return 2 ;}}运行结果
catch is begin
finally is begin
1
-----------------
catch is begin
finally is begin
2
-----------------
1
finally is begin
2依照这里的运行结果可以得出结论 1、无论是否有异常finally中的代码都会执行 2、有异常的情况下如果catch和finally代码块中均有return则catch中的return不会被执行或者覆盖如果catch代码块中有returnfinally代码块中没有return则catch中的return会被执行