Java 異常

小張寫bug發表於2020-11-04

異常

try…catch…finally執行順序

1.看是否有return或者throw new Exception()
return語句和throw 意味著呼叫結束,因此若是在try塊外/catch塊/finally塊中存在有return語句,那麼只會被呼叫一次。
return的執行優先順序為finally > catch > try。
2. 除去return和throw語句外的其他語句,直到發生異常時,執行優先順序為try > catch > finally。

public class ExceptionBuilder {

    public String buildException() throws Exception {
        try{
            System.out.println("try");
            int result = 10 / 0;
        }catch (Exception e){
            System.out.println("異常1");
            throw new Exception("丟擲異常1");
        }finally {
            System.out.println("異常2");
            return "return異常2";
        }
    }

    public static void main(String[] args) throws Exception {
        String s = new ExceptionBuilder().buildException();
        System.out.println(s);
    }
}

執行結果如下:
在這裡插入圖片描述