簡體   English   中英

庫中的異常處理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM