C#中的方法链接和异常
如果我有如下方法链:
var abc = new ABC(); abc.method1() .method2() .methodThrowsException() .method3() ; 假设我已经将method1(),method2()和method3()定义为 public ABC method1() { return this; } 和methodThrowsException()为 public ABC method3() { throw new ArgumentException(); } 在运行代码时,是否可以知道哪个特定的代码行抛出了异常,或者它只是将所有方法链接视为一行?我做了一个简单的测试,它似乎只把它们视为一条线,但Method Chaining说
我错过了什么,或者这不适用于C#? 谢谢 编辑: alt text http://img163.imageshack.us/img163/4503/83077881.png 解决方法
如果查看堆栈跟踪(显示为异常详细信息的一部分),无论您如何格式化代码,都应该看到异常的确切位置.
我想如果调试器允许你在特定的行上放置一个断点,那么以不同方式格式化代码会很有用,但在C#中,断点放在单独的表达式上,所以这不会有帮助.您可能需要重写这样的代码以允许放置断点: var abc = new ABC(); var abc1 = abc.method1(); var abc2 = abc1.method2(); // etc... 这同样适用于突出显示当前表达式(在屏幕截图中).但是,有关异常的确切信息始终在堆栈跟踪中可用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |