[英]Why I can't catch an exception thrown from third party library?
通过使用第三方库,我遇到了有趣的情况。 以下代码在异常时中断:
var instance = new Class(arg);
但是,当此行包含在try/catch
块中时,永远不会捕获异常。
当然,只有启用了对给定异常类型的中断后,Visual Studio调试器才会在异常上停止。 禁用后,异常消失(完全消失)。 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语句上停止(如果已配置为这样做),但是由于“已处理”异常,因此它不会传播到其他任何地方...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.