Sha*_*lle 18 .net c# multithreading exception-handling exception
我们有一个接口IPoller,我们有各种各样的实现.我们有一个进程将接受一个IPoller并在一个单独的线程中启动它.我试图想出一种通用的方法来为任何不自行处理的IPoller提供异常处理.
我最初的想法是创建一个IPoller的实现,它将接受一个IPoller并只提供一些日志记录功能.我遇到的问题是如何提供此错误处理?如果我有IPoller.Start()这是Thread的目标,那将发生异常?或者我可以挂钩的线程本身有什么东西?
Rex*_*x M 20
就像是:
Thread thread = new Thread(delegate() {
try
{
MyIPoller.Start();
}
catch(ThreadAbortException)
{
}
catch(Exception ex)
{
//handle
}
finally
{
}
});
Run Code Online (Sandbox Code Playgroud)
这将确保异常不会使其成为线程的顶部.
Mar*_*ell 11
您应该在线程顶部使用的方法中捕获异常,并从那里进行日志记录.
未处理的异常(在线程顶部)将(在2.0以后)终止您的进程.不好.
即你传递给Thread.Start
(等)的任何方法都应该有一个try
/ catch
,并在catch
(记录,也许是优雅的关闭等)中做一些有用的事情.
为此,您可以使用:
归档时间: |
|
查看次数: |
18772 次 |
最近记录: |