2010-04-16 59 views
0

在Java SE中,可以使用initCause來設置異常原因,以避免在捕獲和重新拋出異常時丟失有關錯誤的信息。在Java ME中可以做到這一點嗎?替代Java ME中的異常原因

回答

0

這是很容易擴展Exception類來實現這一目標:

public class OperationFailedException extends Exception{ 
    public Exception cause; 
    public OperationFailedException(String string, Exception ex) { 
     super(string); 
     cause=ex; 
    } 

    public void printStackTrace(){ 
     super.printStackTrace(); 
     System.err.println("\nCaused by:\n"); 
     cause.printStackTrace(); 
    } 
} 

當我們要避免強迫主叫這例外的是隱藏了底層的例外,比如當我們想避免依賴關係或者有用處理太多類型的例外。我通常也會創建這個類的一個版本,擴展爲RuntimeException用於包裝異常,我想取消選中

相關問題