Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C处理web项目中异常的方法#_C#_Exception Handling - Fatal编程技术网

C# 使用C处理web项目中异常的方法#

C# 使用C处理web项目中异常的方法#,c#,exception-handling,C#,Exception Handling,处理catch语句中发生的异常的最佳方法是什么。目前,我们正在将异常消息写入响应对象的写入方法。但是我想要一个解决方案,通过这个解决方案,用户只会得到一个一般性的错误消息,即出现了错误,但是我们必须得到关于错误的详细描述。我想知道在C#中异常处理所采用的不同做法。写入事件日志是选项之一。我会将详细错误记录到我的数据库中,并将用户重定向到一般错误页面。对于web项目,并防止任何异常被推到浏览器中,您可以启用运行状况监视,也可以启用自定义错误页面。如果您希望catch语句中可能出现异常,只需在其中嵌

处理catch语句中发生的异常的最佳方法是什么。目前,我们正在将异常消息写入响应对象的写入方法。但是我想要一个解决方案,通过这个解决方案,用户只会得到一个一般性的错误消息,即出现了错误,但是我们必须得到关于错误的详细描述。我想知道在C#中异常处理所采用的不同做法。

写入事件日志是选项之一。

我会将详细错误记录到我的数据库中,并将用户重定向到一般错误页面。

对于web项目,并防止任何异常被推到浏览器中,您可以启用运行状况监视,也可以启用自定义错误页面。如果您希望catch语句中可能出现异常,只需在其中嵌套另一个try-catch,这样它就可以轻松地结束

在global.asax中,您还可以订阅应用程序错误事件,该事件将针对未处理的异常调用

安德鲁


ASP.NET中的运行状况监视:

对于希望修复此问题的您来说很好。将异常消息直接写回用户可能会带来严重的安全风险——正如您已经发现的,异常消息可能包含大量信息,有助于恶意用户访问您的站点


我将看一看(错误日志模块和处理程序);这是一种将详细错误日志添加到web应用程序的简单方法

正如REA_ANDREW所说,使用健康监控和自定义错误页面

他没有明确指出的一点是,您应该避免在所有东西周围都放置try/catch块的编程风格。运行状况监视将记录未处理的异常,自定义错误页面将向用户显示您希望用户看到的有关错误的任何信息(如果有)。但是,只有当您没有捕获异常时,才会发生这种情况,所以请不要管它们,让它们传播