Java 异常 总结 try catch finally Exception
生活随笔
收集整理的這篇文章主要介紹了
Java 异常 总结 try catch finally Exception
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
異常
定義
表示程序在運行過程中出現的非正常情況,編寫代碼的過程中盡可能少的減少異常出現的情況
分類
- Throwable
- Error 代碼級別無法解決的異常情況
- Exception
- 運行時異常:在程序運行過程中,由于輸入的參數值的不同,可能會發生也可能不會發生
- checked異常 :編譯時異常,在ide中會顯示的檢查出來
異常的處理
捕獲異常1、
try{可能出現異常的語句 }catch(可能出現的異常){捕捉異常后執行的語句 } // try{int x = 1 /0; }catch(ArithmeticException e){e.printStack(); }捕獲異常2、
try{可能發生異常的代碼 }catch(發生的異常){捕捉異常后執行的語句 }finally{不管是否發生異常都要執行的語句 }// try{int x = 1 /0; }catch(ArithmeticException e){e.printStack(); }finally{System.out.println("finally") }注意
當發生異常時,在try代碼塊中異常語句后面的語句不會再執行
try、catch、finally以及try…catch…finally之外的代碼是互相獨立的,在try中定義的變量在其他的部分無法訪問,改變了僅作用于try部分,其他catch、finally情況類似,但是外部定義的變量在try、catch、finally中可以使用
在進行異常捕獲的時候,return語句的不同位置會造成結果的不同
首先討論try…catch…finally后面有代碼的情況
2.try…catch…finally后面沒有代碼的情況
//第一種情況 try{System.out.println("1");System.out.println(1 / 0);return;}catch (Exception e){System.out.println("2"); // return;}finally {System.out.println("3"); // return;} // 此時return語句永遠不會執行 // 第二種情況,此時return語句有沒有都沒有關系 try{System.out.println("1"); // System.out.println(1 / 0);return;}catch (Exception e){System.out.println("2"); // return;}finally {System.out.println("3"); // return;} //第三種情況 try{System.out.println("1");System.out.println(1 / 0); // return;}catch (Exception e){System.out.println("2");return;}finally {System.out.println("3"); // return;} //此時,還是跟前面一樣的,return先掛起,執行完finally中的代碼后再結束程序 //第三種情況 public class Demo {public static void main(String[] args) {System.out.println(method());}public static int method(){try{System.out.println("1");System.out.println(1 / 0); // return;}catch (Exception e){System.out.println("2");return 1;}finally {System.out.println("3"); // return 2;} // System.out.println("4");return 0;} } // 此時會執行最近的return語句綜上:
拋出異常
throws
將異常情況拋出給調用者
注意,如果整個程序的運行過程中都沒有異常的處理的話,最終異常會拋給jvm,不太友好,一般都要對異常進行處理
import java.io.FileInputStream; import java.io.FileNotFoundException;public class Demo1 {public static void main(String[] args) throws FileNotFoundException {FileInputStream fileInputStream = new FileInputStream("test.txt");} }自定義異常
java中提供了非常多的異常類,但是在某些項目中需要自己定義獨特的異常處理方式,此時需要自定義異常
另外,還可以自定義異常信息
public class Demo1 {public static void main(String[] args) throws Exception {throw new Exception("test");} }希望對大家有所幫助。
總結
以上是生活随笔為你收集整理的Java 异常 总结 try catch finally Exception的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见Java面试题 线程和进程的区别?
- 下一篇: 常用Java面试题 List集合