我有一个 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 方法直接捕获了我的异常。因此,我看不到错误的来源(我是说,我可以在其中找到对 Overwrite 的错误调用。
我想让异常发生的地方是当我调用MyObject.Overwrite()时,然后可以看到错误的行(和错误的对象)。
我尝试了多种技术,例如try-catch-throw,...但是没有用。
顺便说一句,这是我第一次在CSharp中创建一个异常,通常我过去捕获的所有异常都在错误的行中未得到处理...