我有以下代码片段.
class Program
{
static void Main(string[] args)
{
try
{
Thread m_thread = new Thread(() =>
{
//try
//{
checkexc();
//}
//catch (Exception ex)
//{
//}
}
);
m_thread.Start();
}
catch (Exception ex)
{
}
}
static void checkexc()
{
throw new NullReferenceException();
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖Try-Catch块不处理NullReferenceException.但是,如果我将委托包装在thread()构造函数中,那么它将由Try-Catch处理.为什么外部Try-Catch不处理此异常.
想象一下,你有一条主要道路(A),另一条道路从那条道路分支出来(B).
当卡车沿着A行驶时,如果它发生碰撞,那么A将知道它,并且交通将停止.
当卡车沿着B行驶时,如果它发生碰撞,那么B将知道它,并且交通将停止.
但通过什么机制B会告诉A一辆卡车撞上了它?
一旦卡车在B上,它不会影响A,除非沿着A到B有另一个入口点.
如何将您的其他线程中的异常传递给主线程?一旦另一个线程运行,它就不再(直接)与主线程通信.
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |