gpt4 book ai didi

c# - 如果方法抛出异常,则从方法返回值

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

又是星期一,我有一个关于 C# 基础知识的问题。如果方法抛出异常,方法的返回值会发生什么变化?

具体来说,当在方法内部抛出异常时,“幕后”发生了什么?这对返回值有什么影响?这种情况下,内部是怎么计算返回值的?

假设有两种情况:一种是返回值是 int 类型,另一种是 object 类型。 default(T)是不是要在发生异常的时候在内部调用?在这种情况下,我是否应该认为 int 类型的返回值为零,而对象的返回值为 null

最佳答案

简短、过于简单的答案是它不会返回任何东西。代码会在异常发生的任何地方“中断”,并沿着堆栈向下移动,直到有东西捕获它。

即使您确实碰巧捕获了异常,您尝试使用方法的返回值初始化的变量仍将保持调用方法之前的状态:

var i = 5;

try
{
i = MyMethodThatThrowsAnException();
}
catch
{
// at this point, the i variable still equals 5.
}

我应该提一下,如果函数抛出异常,您真的不应该担心函数的返回值。如果你这样做,那么你可能做错了什么,比如使用 exceptions as flow control .

关于c# - 如果方法抛出异常,则从方法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22609035/

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