91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA異常處理方式是什么

發布時間:2021-12-30 15:33:12 來源:億速云 閱讀:141 作者:iii 欄目:編程語言

這篇文章主要講解了“JAVA異常處理方式是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JAVA異常處理方式是什么”吧!

1:try-catch

結構:

*  結構:
 * try{
 * 可能出現異常de代碼段
 * }catch(可能出現的異常){
 * 解決辦法
 * }

 
順序:

*  try-catch的執行順序:
 *   1、執行try塊中的代碼塊  如果出現異常
 *    2、通過出現的異常去匹配 catch中聲明的異常類型
 *    3、如果匹配成功 執行catch中的代碼塊         如果匹配失敗  jvm處理當前異常信息 (終止程序 輸出異常信息)
 *    4、繼續執行剩下的代碼

 
例子:

  1. public class Test04 {  

  2.     public static void main(String[] args) {  

  3.         try{  

  4.             int num = 1/0;//new ArithmeticException()  

  5.             System.out.println(num);  

  6.         }catch(InputMismatchException e){ //InputMismatchException e = new ArithmeticException();  

  7.             System.out.println("除數不能為0");  

  8.         }  

  9.           

  10.         System.out.println("嘿嘿");  

  11.           

  12.     }  

  13. }  

 
注意事項

PS:只能處理一種異常信息。

 

2:try-多重catch

結構:

*  結構:
 *   try{
 *   可能出現異常的代碼
 *   }catch(異常類型1 e1){
 *   解決方案1
 *   }catch(異常類型2 e2){
 *   解決方案2
 *   }catch(異常類型3 e3){
 *   解決方案3
 *   }。。。。{
 *   }

 
順序

* 執行順序:
 * 1、執行try塊 如果出現異常
 * 2、以此匹配多重catch中聲明的異常
 * 3、如果匹配成功 執行當前匹配成功的catch塊 try-catch塊執行完畢 繼續執行下面的代碼
 * 4、如果匹配失敗 交由jvm處理 程序終止 輸出異常信息
 * 5、一般情況下我們都會在最后一個catch中加入Exception 獲取可能沒有捕獲的異常信息

 
例子

  1. public class Test05 {  

  2.     public static void main(String[] args) {  

  3.           

  4.         Scanner input = new Scanner(System.in);  

  5.           

  6.         try{  

  7.             System.out.println("請輸入被除數---->");  

  8.             int num1 = input.nextInt();  

  9.             System.out.println("請輸入除數---->");  

  10.             int num2 = input.nextInt();  

  11.             System.out.println(num1+"/"+num2+"="+(num1/num2));  

  12.               

  13.         }catch(InputMismatchException e){//這個異常對象中沒有維護異常的原因 所以通過getMessage獲取不到異常信息  null值  

  14.             //e.printStackTrace();   

  15.             System.out.println(e.getMessage());  

  16.             System.out.println("用戶輸入有誤");  

  17.         }catch(ArithmeticException e){//這個異常對象中維護異常的原因 所以通過getMessage可以獲取到異常信息  

  18.             System.out.println(e.getMessage());//by zero  

  19.             System.out.println("除數不能為0");  

  20.               

  21.               

  22.         }catch(Exception e){//Exception e = new 可能出現的異常();   父類變量指向了子類對象   

  23.             //多態  

  24.             System.out.println(e.getMessage());  

  25.             System.out.println("外星人把頁面叼走了 請等待。。。");  

  26.         }  

  27.           

  28.     }  

  29. }  

 
注意事項:

PS:
  1. 一般情況下我們都會在最后一個catch中加入Exception 獲取可能沒有捕獲的異常信息

  2. 常見的異常的對象中的方法:

* 異常中常見的方法:
      * e.getMessage() -->獲取異常的原因藐視
      * e.printStackTrace()  -->打印異常的出現行數以及異常的全限定名* e.toString  --> 異常的全限定名

 

3:try-多重catch-finally

結構:

* 結構:
 * try{
 *   可能出現異常的代碼
 *   }catch(異常類型1 e1){
 *   解決方案1
 *   }catch(異常類型2 e2){
 *   解決方案2
 *   }catch(異常類型3 e3){
 *   解決方案3
 *   }。。。。{
 *   }finally{
 *   代碼塊
 *   }

 
順序:

* 執行順序:
 * 1、執行try塊 如果出現異常
 * 2、以此匹配多重catch中聲明的異常
 * 3、如果匹配成功 執行當前匹配成功的catch塊  執行finally代碼塊 try-catch-finally塊執行完畢 繼續執行下面的代碼
 * 4、如果匹配失敗 交由jvm處理 程序終止 輸出異常信息 也會執行finally代碼塊
 * 5、一般情況下我們都會在最后一個catch中加入Exception 獲取可能沒有捕獲的異常信息
 * 6、一般情況下通過finally去關閉連接資源

 
例子:

  1. public class Test06 {  

  2.     public static void main(String[] args) {  

  3.         Scanner input  = null;  

  4.         try{  

  5.               

  6.             input = new Scanner(System.in);  

  7.             System.out.println("請輸入被除數---->");  

  8.             int num1 = input.nextInt();  

  9.             System.out.println("請輸入除數---->");  

  10.             int num2 = input.nextInt();  

  11.             System.exit(0);//關閉虛擬機 0正常退出  非0 強制退出  

  12.             System.out.println(num1+"/"+num2+"="+(num1/num2));  

  13.               

  14.         }catch(InputMismatchException e){  

  15.             System.out.println("用戶輸入有誤");  

  16.         }catch(ArithmeticException e){  

  17.             System.out.println("除數不能為0");  

  18.         }catch(Exception e){  

  19.             System.out.println("外星人把頁面叼走了 請等待。。。");  

  20.         }finally{  

  21.               

  22.             System.out.println("我被執行了");  

  23.             //在這里關閉的  

  24.             input.close();  

  25.         }  

  26.           

  27.     }  

  28. }  

 
注意事項:

PS:
  1. finally一定會被執行 return 以及異常或者是正常情況下都會執行finally代碼

  2. System.exit(數字) 退出虛擬機 0 正常 非0 強制

 
 

4:throws 聲明一個異常

語法格式:

* 注意格式:
 * 方法() throws 異常類型1,異常類型2。。。{}

 
注意事項:

  1. s不要忘記 一個方法可以聲明多個異常信息

  2. 某個方法如果對外聲明一個異常,那么調用者一定要解決當前異常。解決方案:

    A、try-catch     B、繼續向外聲明

 
案例:

  1. public class Test08 {  

  2.     public static void main(String[] args)throws Exception {  

  3.         /*try{

  4.              

  5.             //1、調用add方法

  6.             add(1,2);

  7.         }catch(Exception e){

  8.              

  9.         }*/  

  10.         System.out.println(add(1,43));  

  11.           

  12.     }  

  13.       

  14.     /*

  15.      * 計算兩個數相加

  16.      * 調用這個方法可能出現異常

  17.      * 這個方法就必須對外聲明一個異常

  18.      */  

  19.     public static int add(int num1,int num2)throws Exception{  

  20.         return num1+num2;  

  21.     }  

  22.       

  23. }  

 

5:throw拋出異常信息

語法格式:

throw new 異常類型();
PS:拋出異常是在方法內部編寫的

 
注意事項:

  1. throw 拋出異常在方法體體編寫

  2. 一般情況下和throws一起使用

 
案例:

  1. public class Test09 {  

  2.     public static void main(String[] args) {  

  3.         //1、創建一個user對象  

  4.         User u = new User();  

  5.         //2、解決異常  

  6.         try {  

  7.             u.setGender(12);//new Exception();  

  8.         } catch (Exception e) {  

  9.             e.printStackTrace();  

  10.         }  

  11.           

  12.           

  13.     }  

  14.       

  15.       

  16. }  

  17. class User{  

  18.       

  19.     private int gender;  

  20.       

  21.     public User() {  

  22.         // TODO Auto-generated constructor stub  

  23.     }  

  24.   

  25.     public int getGender() {  

  26.         return gender;  

  27.     }  

  28.   

  29.     public void setGender(int gender) throws Exception{  

  30.         //判定gender的值  

  31.         if(gender==0||gender==1){  

  32.             this.gender = gender;  

  33.         }else{  

  34.             //拋出一個異常  

  35.             throw new Exception();  

  36.         }  

  37.     }  

  38. }  

6:自定義異常:

自定義異常的步驟:

* 如何自定義異常:
 * 1、創建一個類 讓當前類要么繼承Exception 要么繼承RuntimeException
 *  2、編寫當前類的構造器  :
 *   a、一定要寫空構造器
 *   b、一定要寫一個帶異常原因描述的構造器 (帶一個String參數的構造器)
 *  3、在構造器內部通過super()調用父類的構造器即可

 
自定義異常如何獲取異常信息:類圖:
JAVA異常處理方式是什么 
實例:

  1. public class GenderException extends Exception{  

  2.       

  3.     public GenderException(){  

  4.           

  5.     }  

  6.       

  7.     public GenderException(String str){  

  8.         super(str);  

  9.     }  

  10.       

  11. }  

 
測試類:

  1. public class Test11 {  

  2.     public static void main(String[] args) {  

  3.           

  4.           

  5.         //1、創建一個Person對象  

  6.         Person p = new Person();  

  7.         try{  

  8.             p.setGender(10);  

  9.               

  10.         }catch(GenderException e){  

  11.             System.out.println(e.getMessage());  

  12.         }  

  13.           

  14.         System.out.println(p.getGender()==0?"女生":"男生");  

  15.           

  16.           

  17.     }  

  18. }  

  19. class Person{  

  20.       

  21.     private int gender;  

  22.       

  23.     public Person() {  

  24.         // TODO Auto-generated constructor stub  

  25.     }  

  26.   

  27.     public int getGender() {  

  28.         return gender;  

  29.     }  

  30.   

  31.     public void setGender(int gender) throws GenderException,NullPointerException{  

  32.         if(gender==0||gender==1){  

  33.             this.gender = gender;             

  34.         }else{  

  35.             //拋出異常  

  36.             throw new GenderException("性別賦值錯誤");  

  37.         }  

  38.     }  

  39.       

  40.       

  41.       

  42.       

  43. }  

 
PS:當int作為屬性時它是具有默認值,默認值是0.而這個值有可能導致程序運行期間出現不穩定因素

感謝各位的閱讀,以上就是“JAVA異常處理方式是什么”的內容了,經過本文的學習后,相信大家對JAVA異常處理方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平江县| 永宁县| 新田县| 阿拉善右旗| 衡东县| 建瓯市| 枣阳市| 呼玛县| 杭锦旗| 红河县| 渑池县| 永兴县| 高安市| 桦甸市| 黎城县| 济源市| 龙川县| 仁寿县| 苏尼特左旗| 滦平县| 甘德县| 泸西县| 子长县| 焦作市| 东辽县| 璧山县| 临沭县| 年辖:市辖区| 邢台县| 浙江省| 黔东| 东平县| 清原| 麻城市| 塔城市| 武宣县| 昔阳县| 乳山市| 巴塘县| 墨玉县| 平山县|