为什么我可以';t捕获从第三方库引发的异常
本文关键字:第三方 异常 我可以 为什么 | 更新日期: 2023-09-27 18:20:28
使用第三方库时,我遇到了有趣的情况。以下代码在出现异常时中断:
var instance = new Class(arg);
但是,当这一行包含在try/catch
块中时,永远不会捕捉到异常。
当然,只有在启用了对给定异常类型的中断时,visualstudio调试器才会对异常停止。禁用时,异常将消失(完全)。catch块从不执行。使用catch (Exception exc) {}
还是catch {}
并不重要。该异常源自Exception
。
这怎么可能
我想这可能是"只调试"异常的常见技巧或做法。第三方库使用如下代码:
public class Class
{
public Class(object arg)
{
try
{
...
throw new Exception("message");
...
}
catch
{
// This is just empty. By purpose.
}
finally
{
...
}
}
}
调试器然后在throw语句上停止(如果配置为这样做的话),但由于异常被"处理",它不会传播到其他任何地方。。。