gpt4 book ai didi

c# - C# 中的方法链和异常

转载 作者:太空狗 更新时间:2023-10-29 21:20:14 24 4
gpt4 key购买 nike

如果我有如下的方法链:

        var abc = new ABC();
abc.method1()
.method2()
.methodThrowsException()
.method3()
;

假设我已经将 method1()method2()method3() 定义为

    public ABC method1() {
return this;
}

methodThrowsException()作为

    public ABC method3() {
throw new ArgumentException();
}

在运行代码时,是否可以知 Prop 体是哪一行代码抛出了异常,还是将所有的方法链视为一行?我做了一个简单的测试,它似乎将它们都视为一行,但 Method Chaining

Putting methods on separate lines also makes debugging easier as error messages and debugger control is usually on a line by line basis.

我是不是遗漏了什么,或者这不适用于 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...

这同样适用于当前表达式的突出显示(在您的屏幕截图中)。但是,堆栈跟踪中始终提供有关异常的确切信息。

关于c# - C# 中的方法链和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com