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