[英]Exception Handling in libraries
以下庫代碼是否有問題?
try
{
//
}
catch (Exception ex)
{
CustomLogger.Log(ex.ToString()); //Write to log file
throw;
}
我讀過某個地方,最好將異常處理留給應用程序
框架實際上不應該擁有自己的日志記錄。 它應該允許應用程序提供日志記錄提供程序。
如果應用程序在這種情況下提供了日志記錄提供程序,那么實際的代碼就可以了(記錄Exception然后重新拋出)。 否則,只需讓異常冒泡,以使應用程序記錄其認為合適的方式。
如果您堅持認為,可以讓API記錄錯誤和程序狀態。 這樣,您可以通過查看日志來更輕松地調試API。 最重要的是,您應該重新拋出異常,以便調用者知道該錯誤並嘗試以有意義的方式對其進行處理。 如果您只是記錄而不扔,則調用者將感到困惑,或者可能需要監視日志文件中的更改並從那里推斷異常。
我的意思是,即使您記錄了它,也要扔掉它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.