c# - 异常不是通过函数抛出而是直接捕获的
问题描述
我有一个函数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 中创建异常,通常我过去捕获的所有异常都在故障线路上未处理......
解决方案
推荐阅读
- c# - ASP.NET Core Jwt 401 未经授权。策略认证
- javascript - chrome上的getDisplayMedia拆分选择窗口
- rust - Rust 链表不能借用上一个和下一个元素作为可变的(只需要不可变的引用)
- java - 引起:java.sql.SQLException:ORA-06550:第 1 行,第 7 列:PLS-00306:调用“PR_SP_FAHMI”时参数的数量或类型错误
- javascript - window.moveTo() 在 Firefox 中不会超过我屏幕的一半
- python-3.x - Python 3 中有异步抽象基类吗?
- ios - 如何在 StackView 中停止排列的子视图剪辑
- xamarin - 如何导航离开 MasterDetailPage 但不重置导航堆栈
- angular - 错误:AADSTS50058:已发送静默登录请求,但没有用户登录 - 移动 safari 浏览器中的 Angular ADAL 身份验证问题
- data-mining - ECLAT算法找到最大和闭合频繁集