2011-04-16 73 views
1

如何編寫可拋出多個檢查java異常的UserException類? 我應該擴展Throwable類嗎? 如果你能給我一個簡單的例子說明拋出兩個例外,那會更好。 這個問題的主要目的是我想減少不。在代碼中嘗試和捕獲塊語句。如何編寫拋出多個檢查異常的UserException

回答

0

每個線程最多可以有一個例外,那就是目前被拋出,尚未抓到。告訴我們你想做什麼的完整故事,否則我們不得不猜測太多。

0

羅蘭德是對的,一種方法只能拋出一個例外。

也許您正在尋找異常層次結構?

0

有一種方法拋出「多個例外」,有點。你可以拋出一個異常封裝到另一個,就像這樣:

throw new UserException(new SomeException()); 

當這個被捕獲,捕手可以找到這樣的原因:

catch (UserException e) { 
    Exception cause = e.getCause(); // cause is an instance of SomeException 
} 

這樣捕手同時訪問異常。

定義UserException爲擴展例外:

public class UserException extends Exception { 

    private UserException(String message, Throwable cause) { 
     super(message, cause); 
    } 

    private UserException(Throwable cause) { 
     super(cause); 
    } 
} 
0

不要延長的Throwable。如果您希望它成爲檢查的異常,請擴展異常,如果您希望它成爲未經檢查的異常,請擴展RuntimeException。

我同意其他答案,可能你需要一個異常層次結構(查看IOExceptions是如何工作的,還有一個FileNotFoundException,它擴展了IOException,因此你可以捕獲IOException並獲取它們)。提供更多關於你想要的行爲的信息。