C# 在C中未捕获异常#

C# 在C中未捕获异常#,c#,.net,C#,.net,我有一个windows服务应用程序。我已经将所有代码放在了一个try块中,但是应用程序还是会崩溃。下面是我从事件查看器得到的错误消息,我无法从代码中找出任何东西。有人能帮我吗 Fault bucket , type 0 Event Name: CLR20r3 Response: Not available Cab Id: 0 Problem signature: P1: bgfcimportjobs.exe P2: 1.0.0.12 P3: 4f8ee332 P4: mscorlib P5:

我有一个windows服务应用程序。我已经将所有代码放在了一个try块中,但是应用程序还是会崩溃。下面是我从事件查看器得到的错误消息,我无法从代码中找出任何东西。有人能帮我吗

Fault bucket , type 0
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: bgfcimportjobs.exe
P2: 1.0.0.12
P3: 4f8ee332
P4: mscorlib
P5: 2.0.0.0
P6: 4e1539fa
P7: 349e
P8: 1c5
P9: System.IO.IOException
P10: 

Attached files:

These files may be available here:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_bgfcimportjobs.e_70609b5d8d50b31a8e1a14872a72bb7a82791b3a_2d2ac10e

Analysis symbol: 
Rechecking for solution: 0
Report Id: 1f7048c8-8f63-11e1-8875-b499ba03bf80
Report Status: 4

提前感谢

你真的确定这一切都在try catch之内吗?您需要在所有事件处理程序和类似的东西周围添加它


由于这是一个IO异常,您是否有任何正在读取/写入文件的代码?

您是否以某种方式记录捕获的异常,以便您可以实际查看它是什么


另外-您可以运行Debugger.Launch()-并逐步查看发生了什么情况

您的代码位于Try块中,但在尝试后是否有Catch部分

try
{
   some code...
}
catch(Exception e) 
{
    string message = e.Message;
}

您是否捕捉到了正确的例外情况 您至少应该捕获System.IO。IOException或它的基类。
在catch块中,您应该记录整个异常,即:

try
{
  your code...
}
catch(IOException e) 
{
  YourLogger.WriteMessage(e);
}

因此,您还可以获得异常的堆栈跟踪。

可能是因为您没有捕获try块抛出的异常

开放VS 2010。转到调试>异常菜单。现在选中抛出类别下的所有复选框

使用Debug>attach to process执行服务并附加进程


现在,如果出现任何错误,执行将告诉引起问题的代码。

这可能意味着并非所有代码块都包含try-catch块。尝试使用,这个答案可能会给您一个线索。因为这是一个服务,所以如果全局异常处理程序达到这个程度,我真的会设置一个全局异常处理程序。可以看出,异常没有多大帮助,而您只需将自己的信息写入系统事件,并知道在哪里查找即可。否则,确实没有足够的信息来帮助您。您有一个未捕获的异常,这意味着您应该认真检查代码,并将危险的部分包装在try/catch块中。事实证明,我使用的一个开放源代码存在一些问题,该源代码没有捕获异常,也没有抛出异常。终于修好了!!!谢谢你所有的投入!!!的确如此“如果未找到catch块,CLR将向用户显示一条未处理的异常消息,并停止程序的执行。”您需要一个
catch
try
之后的
finally
块。否则会出现编译时错误。