跟王老師異常(六):拋出異常:使用throw拋出異常

拋出異常:使用throw拋出異常

主講人:王少華  QQ羣號:483773664

學習目標:

一、掌握使用throw拋出異常javascript

二、總結Java中對異常處理的二種方式php

1、使用情境

當程序發生錯誤時,系統會自動拋出異常,這是咱們上節使用的throws聲明拋出異常,除此之外,Java也容許程序員自行拋出異常。自行拋出異常,使用throw語句完成。css

那麼何時程序員自行拋出異常呢?通常狀況下,程序員自行拋出的異常,是由業務產生的,好比性別輸和不是「男「或」女「,系統是沒法自行判斷這種異常的,只能由程序員來決定是否拋出。html

2、語法

1
throw ExceptionInstance

3、示例

(一)書寫throw異常

1
2
3
4
5
6
7
8
9
10
11
12
public class Person {
     private String name;
     private int age;
     private String sex;
     public void setSex(String sex) throws Exception {
         if ( "男" .equals(sex)|| "女" .equals(sex)){
             this .sex = sex;
         } else {
             throw new Exception( "性別必須是:男或女" );
         }
     }
}

(二) 捕獲throw異常

1
2
3
4
5
6
7
8
9
10
public class Test {
     public static void main(String[] args) {
         Person person = new Person();
         try {
             person.setSex( "male" );
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
}


4、throw和throws的區別

  1. 使用不一樣:throw用於程序中拋出異常;throws用於聲明在該方法內拋出了異常前端

  2. 使用位置不一樣:throw位於方法體內部,能夠做爲單獨語句使用;throws必須跟方法參數列表後面,不能單獨使用java

  3. 內容不一樣:throw拋出一個異常對象,並且只能是一個;throws後面跟異常類,並且能夠跟多個異常類。node

5、throw和catch同時使用

綜合前幾節所講的內容,咱們對異常的處理有二種方法
python

  • 在出現異常的方法內捕獲並處理異常,使用try-catch-finallly,該方法的調用者不用再次捕獲該異常。mysql

  • 該方法簽名中聲明拋出該異常,將該異常交給方法調用都處理.jquery

(一)應用情境

實際應用中每每須要更復雜的處理方式:當一個異常出現的時候,單靠某個方法沒法徹底處理該異常,必須由幾個方法才能夠徹底處理該異常。也就是說,異常出現的當前方法中,程序只對異常進行部分處理,還有些處理須要該方法的調用者中才能完成,因此應該再次拋出異常。

(二)示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Cal {
     public String division(String stra, String strb) throws Exception{
         try {
             int a = Integer.parseInt(stra);
             int b = Integer.parseInt(strb);
             int c = a / b;
             return String.valueOf(c);
         } catch (NumberFormatException e) {
             System.err.println( "數字格式異常:程序只能接受整數參數" );
             return "數字格式異常" ;
         } catch (Exception e) {
             throw new Exception( "未知異常" );
         } finally {
             System.out.println( "感謝您使用本程序!" );
         }
     }
}
1
2
3
4
5
6
7
8
9
10
public class Test6 {
     public static void main(String[] args) {
         Cal cal = new Cal();
       
提問和評論均可以,用心的回覆會被更多人看到 評論
發佈評論

相關文章

推薦專欄 更多
相關文章
相關標籤/搜索