我最近一直在學習 Java 并學習了泛型和例外,我有多個擴展 Exception 的類,因為我的專案中需要一堆自定義例外,例如 FileEmptyException:
我還有一個 ExceptionHandler 類
public class FileEmptyException extends Exception {
public FileEmptyException() {
super();
// TODO Auto-generated constructor stub
}
}
public class ExceptionHandler<Ex extends Exception> {
List<Ex> ls;
public ExceptionHandler()
{
ls = new ArrayList<>();
}
public void addException(Ex ex)
{
ls.add(ex);
}
}
當我嘗試創建我的 ExceptionHandler 物件的實體并將自定義例外添加到串列時,我遇到編譯錯誤“方法 addException(capture#1-of ? extends Exception) in the type ExceptionHandler<capture#1-of ? extends Exception> 不適用于引數 (FileNotFoundException)"
我通過以下方式實體化了物件:
private ExceptionHandler<? extends Exception> EH = new ExceptionHandler<>();
并通過以下方式呼叫該函式:
if(!s.hasNext())
EH.addException(new FileEmptyException());
我的主要問題是我嘗試做的事情是否可能(我假設是),如果有,正確的方法是什么?
在此先感謝并為我自己的無知感到抱歉!
uj5u.com熱心網友回復:
在這種情況下,表達您真正想要表達的內容的正確方法是寫ExceptionHandler<Exception>,而不是ExceptionHandler<? extends Exception>。
您可能會由此得出結論,這不ExceptionHandler 應該是通用的,而應該只是一個List<Exception>. 這取決于您的用例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383857.html
上一篇:例外未處理的彈出視窗
