使用第三方库我遇到了有趣的情况。以下代码在异常时中断:
var instance = new Class(arg);
但是当此行包含在try/catch
块中时,异常永远不会被捕获。
当然,只有在启用了给定异常类型的中断时,visual studio调试器才会停止异常。禁用时,异常消失(根本)。 catch块永远不会执行。使用catch (Exception exc) {}
或catch {}
无关紧要。该异常源自Exception
。
这怎么可能?
答案 0 :(得分:-1)
我认为这可能是“仅调试”异常的常见技巧或做法。第三方库使用如下代码:
public class Class
{
public Class(object arg)
{
try
{
...
throw new Exception("message");
...
}
catch
{
// This is just empty. By purpose.
}
finally
{
...
}
}
}
然后调试器在throw语句上停止(如果配置为这样做),但由于异常是“处理”,它不会传播到其他任何地方......