1
我有一個應用程序,其中有大約100個不同類拋出FooException類型。有時候這些異常會被捕獲並處理,有時它們會被捕獲並冒泡以進行登錄。記錄所有發生的應用程序範圍內的異常類型
但是,我希望能夠將所有出現的FooException都發送到特殊的日誌文件,而不管最終如何處理異常。什麼是實施這個的方法?我可以以某種方式使用事件偵聽器模式嗎?
我有一個應用程序,其中有大約100個不同類拋出FooException類型。有時候這些異常會被捕獲並處理,有時它們會被捕獲並冒泡以進行登錄。記錄所有發生的應用程序範圍內的異常類型
但是,我希望能夠將所有出現的FooException都發送到特殊的日誌文件,而不管最終如何處理異常。什麼是實施這個的方法?我可以以某種方式使用事件偵聽器模式嗎?
您可以捕獲所有FooException
類型的異常,對它們進行特殊記錄並重新拋出它們。
try {
// throws exception
} catch (AnotherException e) {
//handle this one
} catch (FooException e) {
specialLog(e);
throw e;
} catch (YetAnotherException e) {
// handle
}
你只對你想要冒泡的事件做這件事。
對於你已經處理的那些,只是做同樣的事情,但不要重新拋出。
插入日誌到'FooException'的構造函數中 –
@MikhailVladimirov FooException是一個Java異常,而不是我們的。我可以在理論上編寫自己的異常類,並用新的異常類替換它的所有實例,但這對我來說並不理想 – smcg
您可以編寫自己的'FooException'版本並創建classloader,它將用您的定製替換標準實現一。 –