为什么我可以';t捕获从第三方库引发的异常

本文关键字:第三方 异常 我可以 为什么 | 更新日期: 2023-09-27 18:20:28

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

var instance = new Class(arg);

但是,当这一行包含在try/catch块中时,永远不会捕捉到异常。

当然,只有在启用了对给定异常类型的中断时,visualstudio调试器才会对异常停止。禁用时,异常将消失(完全)。catch块从不执行。使用catch (Exception exc) {}还是catch {}并不重要。该异常源自Exception

这怎么可能

为什么我可以';t捕获从第三方库引发的异常

我想这可能是"只调试"异常的常见技巧或做法。第三方库使用如下代码:

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

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