我们有一个接口(interface)IPoller,为此我们有各种实现。我们有一个过程,它将使用IPoller并在一个单独的线程中启动它。我试图提出一种通用方法,为任何本身不做的IPoller提供异常处理。
我最初的想法是创建一个IPoller的实现,该实现将接受IPoller并仅提供一些日志记录功能。我遇到的问题是如何提供此错误处理?如果我有IPoller.Start(),则该线程的目标是发生异常的地方?还是线程本身上可以挂入某些东西?
最佳答案
就像是:
Thread thread = new Thread(delegate() {
try
{
MyIPoller.Start();
}
catch(ThreadAbortException)
{
}
catch(Exception ex)
{
//handle
}
finally
{
}
});
这将确保异常不会到达线程的顶部。
关于c# - .NET线程引发异常时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1668634/