Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 我是否应该抛出Global.asax中应用程序_错误处理程序中发生的异常?_C#_Asp.net_Exception Handling_Global Asax - Fatal编程技术网

C# 我是否应该抛出Global.asax中应用程序_错误处理程序中发生的异常?

C# 我是否应该抛出Global.asax中应用程序_错误处理程序中发生的异常?,c#,asp.net,exception-handling,global-asax,C#,Asp.net,Exception Handling,Global Asax,aspx.cs中未处理的错误代码将被global.asax中的应用程序错误处理程序捕获。 我在Application_Error handler中编写了一些代码来记录aspx.cs中发生的此类未经处理的错误 但是如果日志本身的代码也失败并生成异常(可能是由于I/O或文件系统问题) 我应该把这样的例外情况扔掉吗? 如果我将其抛出,哪个事件应该接收此类异常? 或者写不写“throw”语法也没什么区别? 代码示例如下所示 protected void Application_Error(object

aspx.cs中未处理的错误代码将被global.asax中的应用程序错误处理程序捕获。
我在Application_Error handler中编写了一些代码来记录aspx.cs中发生的此类未经处理的错误
但是如果日志本身的代码也失败并生成异常(可能是由于I/O或文件系统问题)
我应该把这样的例外情况扔掉吗?
如果我将其抛出,哪个事件应该接收此类异常?
或者写不写“throw”语法也没什么区别?
代码示例如下所示

protected void Application_Error(object sender, EventArgs e)
{
    try
    {
        // my codes to log exception to Database System here....
    }
    catch(Exception)
    {
        throw;  //Should I write "throw" syntax here ? 
    }
}
  • 日志记录后是否要抛出服务器.GetLastException()?这取决于该例外的性质和原因。我会在特殊的placehold或popup中显示它
  • 如果在尝试记录该异常时发生了抛出异常?那你肯定要吞下它

应用程序错误是在线程(目前正在为您的请求提供服务)中止之前,您可以记录发生的异常的最后一个位置

您不需要抛出任何异常,因为它会在函数退出后自动抛出

这是一个合理的解释

我认为你最关心的是如果你的故障转移机制失败了怎么办。在这种情况下,这是您的日志记录。这在计算机中是一个更大的问题,但构建链式故障转移机制通常是浪费时间,因为最终一切都可能失败(对您自己的研究的附带建议:尽量保持一切尽可能无状态)。您最好的选择是拥有一个非常可靠的日志机制作为您的最后手段,它将在99.9%的时间内成功。我不打算讨论如何创建这样的机制(自己创建日志不是一个好主意,因为有很多技巧需要知道,以确保您的日志记录的性能足够好且不突兀),但总的来说,我建议您使用,它可能是目前可用的最好的日志框架&它将满足您的需要

对于极少量的错误(在现实生活中可能不会),我不会因为它们而失眠