异常不是通过函数抛出而是直接捕获

Exception not thrown through the function but directly caught

我有一个函数 Overwrite,它会在对象被用户锁定时抛出异常。

现在,我的代码是

 public class MyObject<T>
{
    //...other methods,...
    public void Overwrite(T value)
    {
        if (IsLocked)
            throw new Exception("You cannot touch the data you don't own");
        this.Value = value;
        OnUpdate?.Invoke(value);
    }
}

我在代码中使用了多个MyObject,当IsLocked设置为true时,我的异常直接被中的IDE捕获覆盖 方法。所以,我看不出错误来自哪里(我的意思是,我可以找到对 Overwrite.

的错误调用的行

见下文:

我想要异常的地方是当我调用 MyObject.Overwrite() 时,然后我可以看到错误的行(和错误的对象)。

我已经尝试了多种技术,例如 try-catch-throw,...但是 none 有效。

顺便说一句,这是我第一次在 CSharp 中创建异常,通常我过去捕获的所有异常都在错误行未处理...

EDIT :我期待更多这样的东西:

尝试使用调用堆栈window。您可以通过 Debug > Windows > Call Stack

打开它