补时异常问题,而无需论证

遇到这种情况下,事件包装和处理一个奇怪的问题:

public delegate void StatusUpdateHandler(string message, Exception exc, SeverityLevel severity); public event StatusUpdateHandler StatusUpdate; private void FireStatusUpdate(string message) { if (this.StatusUpdate != null) this.StatusUpdate(message, null, SeverityLevel.None); } void scanDocProcessor_StatusUpdate(string message, Exception exc, SeverityLevel severity) { try { if (exc != null) { if (severity >= setSevLevel) this._logger.Log(message + Environment.NewLine + exc.ToString(), LogEntryType.Emergency, "OCR Submission Processor Status Update", true); else this._logger.Log(message + Environment.NewLine + exc.ToString(), LogEntryType.Error, "OCR Submission Processor Status Update", false); } else if (severity >= setSevLevel) { this._logger.Log(message, LogEntryType.Info, "OCR Submission Processor Status Update", true, true); } else this._logger.Log(message, LogEntryType.Info, "OCR Submission Processor Status Update", false); } catch (Exception) { EventLog.WriteEntry("Russia OCR Submission Processor", "Could not log status update event: " + exc.ToString(), EventLogEntryType.Information); } }

一个时期的几分钟,_logger停止记录消息,而是我收到在事件日志中的消息:

无法登录的状态更新事件:System.NullReferenceException:对象不设置到对象的实例。 在ScannedService.scanDocProcessor_StatusUpdate(字符串消息,异常EXC,SeverityLevel严重性)在ScannedService.Processor.FireStatusUpdate(字符串消息)在ScannedService.Processor.ProcessQueue(对象对象)

我很困惑的事件日志如何能得到这样的堆栈跟踪时,它应该写exc.ToString()。 我看着IL为scanDocProcessor_StatusUpdate方法不初始化一个异常对象。 除此之外,我不知道一个NullReferenceException是如何得到抛出。 当登录方法确实抓住它吞下它或重新它抛出一个异常“抛;”。 消息参数永远不能为null和SeverityLevel是一个枚举。

--------------解决方案-------------

您正在之一抛出异常else条件,其中ecx为空。 在catch块,你假设ecx不为空,生成另一个异常,隐藏你的原始之一。

你可以让你的日志报表空安全具有以下内容:

EventLog.WriteEntry("Russia OCR Submission Processor",
String.Format("Could not log status update event: {0}", exc), EventLogEntryType.Information);

分类:C# 时间:2012-01-01 人气:0
本文关键词: .NET,C#,异常
分享到:

相关文章

  • 拼写检查引发异常 2012-01-01

    你好, 我试图让英语字典对象MS Word使用,我想用它来拼写检查. 下面是我写这样做的代码: [码] Microsoft.Office.Interop.Word.Application应用=新Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Dictionary EngDict = NULL; 的foreach(在app.Languages​​ Microsoft.Office.Interop.

  • Web服务类转换异常 2012-01-01

    我目前使用的JBoss 5.1.0并拥有EJB部署,使远程系统上使用的WebService. 我最近收到一个新的虚拟机上有一个更新的JBoss的配置,现在部署,并试图调用一个方法webservice时后,我得到了下面的错误. java.lang.ClassCastException:org.jboss.ws.core.soap.SOAPElementImpl不能转换为javax.xml.soap.SOAPHeader 我已经生成从WSDL Java Web服务绑定,它一直在努力. 必须有一些类路

  • ACCES冲突异常 2012-01-01

    我有一个调用C DLL又调用java的DLL(使用内置喷射精益求精第三方程序)C#程序. 我传递一个XML字符串从C#到Java,然后在java返回字符串到C#的处理. 这适用于第一次迭代,但随后在第二次迭代,我得到以下异常... 试图读取或写入受保护的内存. 这通常是指示其他内存已损坏. 这里是什么我会类的相关代码,但如果你需要任何东西,请让我知道. C#调用到C DLL public static class DllCall { [DllImport("Stubs", Callin

  • 试图打开新的窗口InvalidOperationException异常抛出 2012-01-01

    我有这样的WPF应用程序中,MainNavigationWindow已registerd在其构造一些其他类的事件: SomeClass obj = new SomeClass(); obj.SomeEvent += new EventHandler(SomeEventHandler); 在事件处理程序方法,我想告诉另一个窗口,如: SomeWindow window = new SomeWindow(); window.ShowDialog(); 但是,在创建新的对象上面的异常. 谁能告诉我什么

  • NHibernate的搜索和Lucene异常 2012-01-01

    当一个应用程序是专门使用Lucene索引得到错误信息. 未处理的异常:NHibernate.Search.Impl.SearchException:无法打开的IndexWriter为我的空间 ---> Lucene.Net.Store.LockObtainFailedException:锁定获取超时:SimpleFSLock 我的索引路径 \ write.lock 我只是游荡,如果你们任何人经历过同样的问题? --------------解决方案------------- 你可能应声而被的Ind

  • 如果在C#中的事件处理程序不断引发异常? 2012-01-01

    作为一般规则,是否有任何曾在何种情况下它是可以接受的方法负责收听事件引发的异常(或允许被抛出)阶级引发事件将要处理? 鉴于这种例外会阻止其他的侦听该事件从随后被调用,它似乎有点"反社会",以允许这种情况发生,但在另一方面,如果有异常,应该做些什么? --------------解决方案------------- 从事件处理程序抛出一个例外是在很多方面类似于从抛出异常IDisposable.Dispose方法(或C ++析构函数). 这样做可以为你的来电者创建的破坏,因为你让他们几乎没有

  • 何时使用Java异常(例如) 2012-01-02

    我知道,这将是不好的做法,虽然我知道我将无法解释为什么. int [] intArr = ... ... try{ int i = 0; while(true){ System.out.println(intArr[i++]); } }catch(ArrayIndexOutOfBoundsException e){} 我认为你只应该使用的东西, 不应该发生异常. 我问这个问题,因为我认为我使用异常错误的时候. 如果你的程序正在运行一个标准的情况下,应异常被抛出? 这似乎相关:http://sta

  • 未处理的异常消息之前,每次关机 2012-01-02

    整个邮件上写着:它发生在每一个关机,现在打开. 看到此消息的结尾调用上的细节 刚刚在实时(JIT)调试而不是此对话框. **************异常文本************** System.ComponentModel.Win32Exception:错误创建窗口句柄. 在System.Windows.Forms.NativeWindow.CreateHandle(CP的CreateParams) 在System.Windows.Forms.Timer.TimerNativeWindow

  • 测试使用PHPUnit的多个异常 2012-01-02

    我是新来的单元测试,并写了下面的测试: /** * @expectedException Exception */ public function testCantGetInvalidCampsite() { $invalidIds = array(300000, "string"); foreach($invalidIds as $id) { $this->campsites->getCampsite($id); // will throw an exception }

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.310 (s). 10 q(s)