我在C#中通用try catch块中获取ThreadAbortException(捕获所有异常) - 但是,我无法对其进行跟踪,表明它可能在托管代码之外被杀死。
我得到的HRESULT代码为-2146233040,解码时为:
FACILITY_URT 19 - .NET CLR
代码0x1530 - COR_E_THREADABORTED
抛出一个线程导致它中止。不能捕捉。
如何追踪这头野兽的想法?
答案 0 :(得分:1)
这是由致电Thread.Abort()
而引起ThreadAbortException
。
请注意,即使托管代码抛出了ThreadAbortException
,也无法阻止If you look at this link 传播。你可以抓住它,但你不能忽视它。
{{3}}并搜索COR_E_THREADABORTED
您会看到它用于ThreadAbortException
。
可能有办法找到抛出此异常的位置:
如果可以在Visual Studio调试器下运行,请转到菜单项Debug | Exceptions
,然后勾选“托管调试助手”旁边的抛出列中的复选框。 (如果愿意,可以勾选抛出列中的所有项目。)然后在调试器下运行程序,看看是否弹出任何内容。