在C#(或一般的.NET)中,您是否可以屏蔽通过属性抛出异常的调用堆栈级别?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在C#(或一般的.NET)中,您是否可以屏蔽通过属性抛出异常的调用堆栈级别?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1350字,纯文字阅读大概需要2分钟。
内容图文
![在C#(或一般的.NET)中,您是否可以屏蔽通过属性抛出异常的调用堆栈级别?](/upload/InfoBanner/zyjiaocheng/815/20d61a2d6b32448582781e0800d7129b.jpg)
标题可能有点令人困惑,所以我会解释.说你有这个电话链……
public DoWork(index) >> private DoWorkHelper(index) >> private CheckIndex(index)
现在,如果您调用DoWork,它会将调用遍历到CheckIndex,将每个更深的调用添加到调用堆栈.
现在,如果某人使用错误的索引值调用DoWork,它会在CheckIndex中一直向下抛出异常,并且当前,这就是调试器中断的地方.然后你必须走回调用堆栈才能看到真正的罪犯是有人将坏数据传递给DoWork.
现在回到VB6时代,你可以简单地用一个属性装饰DoWorkHelper和CheckIndex来说’如果我内部抛出任何异常,请不要突出显示我,而是突出我的调用者,因为他们是那些通过我糟糕废话的人!’因此,在这种情况下,代码将在DoWork中突破,并突出显示对DoWorkHeper的调用.
还有一个设置可以禁用它,所以为了更深入的调试目的,它仍然可以抛出CheckIndex,它实际发生的级别,但有一半的时间,那里的分解告诉你什么都没有,因为你不知道你是怎么到达那里的走回调用堆栈.
可以想象它是一种装饰代码的方法,可以说当你遇到异常时,自动遍历调用堆栈到坏值实际告诉你有用的地方.
请注意,这类似于“Break On All Exceptions”,除非您通过装饰处理此问题.另外,您没有设置中断特定类型的异常(例如所有空引用异常等),而是特定方法! (或者更确切地说,称为装饰方法的那个.)
那么C#或.NET一般都有这个吗?
更新
虽然我向Dark Falcon提供了答案,因为他指示我在那里,我已经添加了一个更详细的解释,说明所有属性的含义,以及在什么情况下.请在下面查看.
解决方法:
请参阅Just My Code选项.您需要使用DebuggerHiddenAttribute或DebuggerNonUserCodeAttribute来装饰DoWorkHelper.
内容总结
以上是互联网集市为您收集整理的在C#(或一般的.NET)中,您是否可以屏蔽通过属性抛出异常的调用堆栈级别?全部内容,希望文章能够帮你解决在C#(或一般的.NET)中,您是否可以屏蔽通过属性抛出异常的调用堆栈级别?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。