在Java中,泛型是一種編譯時類型安全機制,它允許你在編譯時檢查類型錯誤,而不是在運行時。在異常處理中,泛型可以幫助你更好地組織和處理異常。
首先,我們來看一個沒有使用泛型的異常處理示例:
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
public class Main {
public static void main(String[] args) {
try {
throw new CustomException("This is a custom exception");
} catch (CustomException e) {
System.out.println(e.getMessage());
}
}
}
現在,我們使用泛型來改進這個示例。我們將創建一個泛型異常類,該類可以包含一個額外的類型參數,用于存儲與異常相關的數據。
class CustomException<T> extends Exception {
private T data;
public CustomException(String message, T data) {
super(message);
this.data = data;
}
public T getData() {
return data;
}
}
public class Main {
public static void main(String[] args) {
try {
throw new CustomException<>("This is a custom exception with data", 42);
} catch (CustomException<Integer> e) {
System.out.println(e.getMessage());
System.out.println("Data: " + e.getData());
}
}
}
在這個示例中,我們創建了一個名為CustomException
的泛型異常類,它接受一個類型參數T
。我們還添加了一個名為data
的成員變量,用于存儲與異常相關的數據。在catch
塊中,我們可以捕獲特定類型的CustomException
,并訪問其data
成員。
總之,泛型在Java異常處理中的應用可以幫助你更好地組織和處理異常,同時提供類型安全和更清晰的代碼結構。