日期:2014-05-17  浏览次数:20733 次

Timer的Elapsed中抛出异常,谁来接?
请问c#中Timer的Elapsed响应函数中抛出异常,谁来接?


void initTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
...
throw (new ApplicationException("初始化连接modem失败,重复尝试失败"));
...
}


控制台中有输出
在 System.ApplicationException 中第一次偶然出现的“sms.exe”类型的异常

------解决方案--------------------
在catch里写到log文件中
------解决方案--------------------
引用:
Quote: 引用:

 try
            {
               
            }
            catch (Exception ex)
            {         
                  throw ex;
            }
直接在函数内部?!那就没啥意义了吧。我是想问在外面怎么捕捉到异常。
外面我调用a.init();的时候触发timer异步进行初始化,在这个异步的过程中,timer响应函数中抛出异常。例如初始化失败,那外面(主窗口)是不是就没办法捕捉到异常了?


你可以用事件,timer里面抛异常的时候触发这个事件