繁体   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