C#中没有捕获异常

时间:2012-04-26 16:07:21

标签: 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: 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

提前致谢!!!

6 个答案:

答案 0 :(得分:1)

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

由于这是一个IO异常,你有没有读/写文件的代码?

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

此外 - 您可以运行Debugger.Launch() - http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.launch.aspx - 然后逐步查看发生了什么

答案 3 :(得分:0)

你是否抓住了正确的例外? 你应该至少捕获 System.IO。 IOException 或它的基类。
catch 块中,您应该记录整个例外,即:

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

所以你也得到了异常的堆栈跟踪。

答案 4 :(得分:0)

可能是你没有捕捉到你的try块正在抛出的异常。

答案 5 :(得分:0)

打开VS 2010.转到Debug>例外菜单。现在选中“投掷类别”下的所有复选框。

执行服务并使用Debug>附加流程附加到流程。

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