try-catch-finally

#tryCatch

  1. 如果try代码块有可能多个异常

  2. 可以用多个catch 分别捕获不同的异常

  3. 要求是子类异常写在前面,父类异常写在后面(比如Exception在后, NullPointerException在前) 如果发生异常,只会匹配一个catch 例如:

try {
            Person person = new Person();
            System.out.println(person.getName());
            int n1 = 10;
            int n2 = 0;
            int res = n1 / n2;
        } catch (NullPointerException e){
            System.out.println("空指针异常:" + e.getMessage());
        } catch (ArithmeticException e){
            System.out.println("算术异常: " + e.getMessage());
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            System.out.println("This is finally");
        }
  1. 可以进行try-finally配合使用,相当于没有捕获异常 ,因此程序会直接崩掉 应用场景就是执行一段代码,不管是否发生异常,都必须执行某个业务逻辑。

try{
//代码...
}
finally{
//总是执行
}

try-catch-finally执行顺序小结

  1. 如果没有出现异常,则执行try块中所有语句,不执行catch块中语句,如果有finally 则有执行finally里面的语句

  2. 如果有异常,则try块中异常发生后,try块剩下的语句不再执行。将执行catch块中语句,如有finally,最后还需要 执行finally里面的语句。


本文章使用limfx的vscode插件快速发布