我正在尋找清理當前正在處理的代碼庫的異常混亂。如何清理異常處理?
基本設置是這樣的。
我有一個是通過大量的類,看起來像這樣實現的接口:
public interface TerminalMessage<E> {
// Override for specific return data type.
public E send(TerminalStream stream) throws Exception;
}
這些類扔了很多不同的異常,如IOException異常,InterruptedException異常等
,因爲它是現在,我所做的就是調用getMessage()獲取捕獲的異常,並將此消息轉發給ui-code。
這不是很好,因爲我有時會向用戶顯示虛假消息,並且發現不需要的異常。
我想創建一個自定義的異常類(TerminalException),它將包裝所有這些類型的異常。
但是我不確定在哪裏做包裝,如果包裝是在第一次拋出異常(例如在輸出流中)或每個send()方法中完成的。前者具有不增加太多代碼的優點,但對於我來說,更有意義的是,流引發IOException而不是TerminalException。
上述設計並不能真正解決顯示給用戶的有時是壞信息,所以一些提示如何將拋出的異常轉換成對用戶有用的東西將是非常好的!
謝謝!
我強烈建議你閱讀這篇文章http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html?page=2 – aviad 2012-04-24 07:35:44