为什么我无法捕获从第三方库中抛出的异常?

时间:2014-09-03 16:45:25

标签: c# exception-handling

使用第三方库我遇到了有趣的情况。以下代码在异常时中断:

var instance = new Class(arg);

但是当此行包含在try/catch块中时,异常永远不会被捕获。

当然,只有在启用了给定异常类型的中断时,visual studio调试器才会停止异常。禁用时,异常消失(根本)。 catch块永远不会执行。使用catch (Exception exc) {}catch {}无关紧要。该异常源自Exception

这怎么可能?

1 个答案:

答案 0 :(得分:-1)

我认为这可能是“仅调试”异常的常见技巧或做法。第三方库使用如下代码:

public class Class
{
    public Class(object arg)
    {
        try
        {
           ...
           throw new Exception("message");
           ...
        }
        catch
        {
            // This is just empty. By purpose.
        }
        finally
        {
            ...
        }
    }
}

然后调试器在throw语句上停止(如果配置为这样做),但由于异常是“处理”,它不会传播到其他任何地方......