异常是否结束线程,尽管它是try/catch
本文关键字:try catch 是否 结束 线程 异常 | 更新日期: 2023-09-27 18:01:53
我有两个问题:
如果我有这样一个方法:
public void DoMyWork()
{
throw new MyException(anyString);
}
…我把它命名为async
,像这样:
public void DoMyWorkAsync()
{
try
{
new Thread(DoMyWork).Start();
}
catch (MyException)
{
// Do anything
}
}
首先,像这样的try块会捕获异常吗?如果是这样,线程会结束吗,因为通常有一个异常线程会停止,但是如果我捕获它,它也会结束吗,或者我必须实现CancellationToken
吗?
不,它不会。线程中的异常必须在线程中处理。主线程不控制线程的执行流程,因此不能捕获异常。
2)应用程序将终止。更多链接:http://msdn.microsoft.com/en-us/library/ms228965(v=vs.110).aspx
首先,异常会被try-block捕获吗这个吗?
不,它不会被抓住。
您需要将DoMyWork
方法中的代码与try/catch
封装以捕获该异常。
注意:它将导致"未处理的异常",任何未处理的异常将破坏进程(应用程序崩溃)。