我对ASP.NET和WCF(IErrorHandler)中使用全局异常处理程序(Application_Error / Page_Error)没有什么基本的疑问。
如果我使用上述任何一项,每个异常都会通过它们,我可以根据自己的意愿记录和映射它们吗?这也促进了删除所有不必要的try catch块并在最后需要的地方替换它们?
通过'不必要'我的意思是,抓住最终变得多余的块。例如如果我正在捕获所有数据库异常并将它们转换为wcf中的特定FaultException,现在我在ProvideFault方法中进行相同的转换,我现在不应该删除那些catch块,因为他们正在做的工作是创建具有客户端友好的FaultException细节?
答案 0 :(得分:1)
是的,您可以全局记录错误,但它不会消除您在页面中进行错误处理的需要(旁注,某些错误,如StackOverflowException,不会被捕获)。在全局级别记录的唯一错误应该是意外的,而不是避免使用try / catch的方法。这是一个简单的原因示例:
您要求用户输入一个号码。您将输入解析为int。他们输入了一个字符串。您想在全局级别记录此错误吗?不。你想要抓住它并向用户显示和错误。
此外,搜索NuGet for Elmah并查看这是否适合您。 5分钟内处理错误。