Java 異常(二) 自定義異常

Java 異常(二) 自定義異常

在開發中,爲了適應業務的開發需求, 在 Java 中可以根據業務的異常情況自定義異常。

一、自定義異常
所有的自定義異常都必須是 Throwable 的子類,在自定義繼承時可以繼承於 Exception 或者它的子類。

二、自定義異常的分類
1、檢查性異常類:自定義異常類繼承於Exception。
2、運行時異常類:自定義異常類繼承於RuntimeException
三、Objects的非空判斷
Objects由一些靜態的實用方法組成,這些方法是null-save(空指針安全的)或 null-tolerant(容忍空指針的),那麼在它的源碼中,對對象爲null的值進行了拋出異常操作。Objects通過調用requireNonNull(T obj)方法查看調用對象是否爲null。

public static T requireNonNull(T obj) {
  if (obj == null)
    throw new NullPointerException();
  return obj;
}
從上面源碼可以看出,如果傳遞對象爲 null,requireNonNull 方法會拋出 NullPointerException 異常,否則返回該對象。

四、實例
1、自定義檢查性異常類(MyException)

public class MyException extends Exception {


public MyException() { } // 無參構造

public MyException(String msg) { 
    super(msg); // msg : 異常提示信息
}

public MyException(Throwable throwable) { 
    super(throwable);// throwable 類型
}

}

2、自定義運行時異常類(MyRuntimeException)

public class MyRuntimeException extends RuntimeException {

public MyRuntimeException() { } // 無參構造

public MyRuntimeException(String msg) { 
    super(msg); // msg : 異常提示信息
}

public MyRuntimeException(Throwable throwable) { 
    super(throwable);// throwable 類型
}

}

3、自定義異常的使用實例

public class ExceptionDemo {

public static void main(String[] args) throws Exception {
    int i = demo(3);
    System.out.println("i = " + i);
}

public static int demo(int index) throws  MyException{
    int[] arr = {1,2,3};
    if(index >= arr.length || index < 0)
        throw new MyRuntimeException("您傳遞的索引錯誤,數組索引在0-2之間");
    return arr[index];
}

}

 4、Objects的非空判斷實例
public static void main(String[] args) throws Exception {

Integer i = 10;
Integer i2 = Objects.requireNonNull(i);
System.out.println(i2);

}

原文地址https://www.cnblogs.com/lingq/p/12943295.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章