1.)什麼樣的異常日誌記錄是更好的做法?正在登錄異常構造函數的不良做法?
//1 xor //2
2.)這個問題語言是否特定? (最感興趣的是C++)
要的代碼:
:: LOG是宏單記錄器
struct myExc : virtual std::runtime_error
{
myExc(std::string const&msg)
:runtime_error(msg)
{
LOG << msg; //1
}
};
void foo_throw()
{
throw myExc("");
}
/// some_where
...
try()
{
foo_throw();
}
catch(myExc const& e)
{
LOG << e.what(); //2
}
catch(...
我更喜歡第二個變體。 –
我通常不會這樣做。如果打印異常真的是處理異常的恰當方法,我*可能*使用第二種方法,但處理異常通常不止於此。 –
第二次記錄更好.. – Kushal