关于例外情况:做什么以及在哪里登录?

And*_*eir 3 c# design-patterns exception-handling exception

我的问题实际上分为两个部分,因此模糊的标题.

第一部分

据我所知,你永远不应该吞下一个例外.甚至没有记录它而忘记了.在一般情况下,我尝试解决异常并重试代码 - 例如,假设我得到一个FileNotFound异常.

我提示用户检查文件是否存在并重试,提供另一个文件选择器对话框并希望最好.如果未能尝试解决问题,我最终会通知用户并记录异常.我被告知在catch块中这不是正确的事情,所以我是通过尝试解决问题来做到的吗?

我想不出还有什么我应该做的.我怀疑我被喂错了信息 - 我是一个可以控制的灵魂.

第二部分

在我的程序目录中创建一个日志以记录异常我认为很好,但我再次被告知应该将异常写入windows eventlog.它是否正确?在什么情况下你应该写入事件日志?

愚蠢的问题需要愚蠢的答案

编辑:除了一般模糊的域名之外,这个问题没有上下文.我和我的朋友在特定情况下对正确的事情进行了喋喋不休.

byt*_*der 5

首先,如果你听到过" 永远不会让你的耳朵振作起来......"这就是为什么他们被称为"最佳实践"而不是"你必须遵循的石头规则......"

这是Microsoft的异常处理最佳实践指南

并且会有很多其他人......

作为开发人员,团队标准,客户等,这真的归结为您.您希望应用程序做什么?

问题1:如果应用程序抛出异常,您是否希望应用程序能够继续运行?然后我会"吞下"异常.

问题2:将特定异常记录到事件日志中是否有好处,或者它是否会使用无用的信息使其膨胀,您可能希望在开发和测试期间将每个异常写入日志,并且具有详细信息然后在生产中精简它...我希望我已经回答了你的问题,即使它确实没有通用的...

我会说你应该有一些一般的指导方针然后如果你有更具体的情况,那么现在是重新发布到这个网站的好时机,并从尝试过不同路线的人那里得到一些反馈并且可以说明利弊.