写了2个非窗体类,里面有很多方法,很多if语句,有些失败的情况想记录下来,最后在UI上给用户提示。或者类似这种错误,一般大家是怎么统一处理的?
------解决思路----------------------
Application.ThreadException +=new ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
------解决思路----------------------
这个不是自定义异常, Application.ThreadException和AppDomain.CurrentDomain.UnhandledException是event,你订阅这些event,当未捕获异常发生时,会调用你指定的函数(分别是Application_ThreadException和CurrentDomain_UnhandledException)
各自的msdn上的解释:
Application.ThreadException
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception%28v=vs.110%29.aspx
AppDomain.UnhandledException
http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.110).aspx
两者的区别:
What's the difference between Application.ThreadException and AppDomain.CurrentDomain.UnhandledException?
http://stackoverflow.com/questions/2014562/whats-the-difference-between-application-threadexception-and-appdomain-currentd
------解决思路----------------------
写了2个非窗体类,里面有很多方法,很多if语句,有些失败的情况想记录下来,最后在UI上给用户提示。或者类似这种错误,一般大家是怎么统一处理的?
使用回调函数,无论什么方法,统一在一处调用执行
方法里面不需要捕捉异常,使用回调函数封装的方法里面进行try cath,这个方法返回bool类型并且out处理异常信息
out处理的异常在UI展现