当前位置: 首页 > 知识库问答 >
问题:

c#return也返回调用函数——类似于PHP的die()早期输出[duplicate]

谭健柏
2023-03-14

注意:这是一个关于C#的PHP问题。也许这不是正确的方法,但以下是我想要做的。

假设您已经定义了:

void Die(string error){
 print(error);
 return; 
}

你可以从另一个方法调用它:

void CallingFunction(){
  if(SomethingDoesNotCheckOut())
   Die("bla");

  // do stuff
}

有没有可能让Die()也在调用它的“parent”方法的早期触发?

举个例子:

void CallingFunction(){
  if(index>arrayLength)
   Die("that's too big!");

  // do stuff
}

对于这一点来说,try-catch似乎有些过头了,但我更希望能够调用一个函数来停止当前的“父”函数。也许我的想法太像PHP的die()

共有2个答案

万俟浩
2023-03-14

通常情况下,您会为此使用异常。只需抛出一个异常

void Die(string error){
 print(error);
 throw new Exception(error); 
}

您可以随时通过在更高级别上实现try... get来处理它。

try
{
    // Something that can call Die.
}
catch (Exception ex)
{
    // Something threw an exception. Now handle it.
}
袁建木
2023-03-14

不是没有抛出异常,不是。请记住,在许多情况下,调用方法将是非无效的——在这种情况下,您期望它返回什么值?

老实说,你所描述的用例听上去确实会更好地处理异常。这就是C#惯用的错误处理机制。

如果要收集错误而不使用异常,则必须显式返回。

 类似资料:
  • 我在下面有一个函数,它的目的是返回第一个索引,其中数据不是按升序排序的。如果对数据进行排序,它将只返回数组的长度。例如,{10,20,90,5,70}将返回3(90 测试用例:

  • 到目前为止,我们创建的函数都只是对传入的数据进行了处理,处理完了就结束。但实际上,在某些场景中,我们还需函数将处理的结果反馈回来,就好像主管向下级员工下达命令,让其去打印文件,员工打印好文件后并没有完成任务,还需要将文件交给主管。 Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值,该返回值可以是任意类型。需要注意的是,return 语句在同一函数中可以出现多次

  • 我找到了一些很好的SO链接(如何从异步回调函数返回值?以及从node.js中的回调函数返回值等),但它们并不是不能为我的问题提供解决方案。 我的问题:能够得到异步调用的结果,但我如何使用这个结果返回我的函数? 这里获取callBackResponse的值为true或false,并希望将该值用作:

  • 问题内容: 我正在使用Postgresql 8.3,并具有以下简单功能,该功能会将a返回 给客户端 现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但是游标名称是由PostgreSQL自动生成的 此外,如38.7.3.5中所述,显式地将游标名称声明为函数的输入参数 。返回游标。我可以声明自己的游标名称并使用此游标名称来操纵返回的游标,而不是为我自动生成的Postgresql吗?如果不是

  • 出于我无法控制的原因,我必须在我的C代码中实现这个函数: 调用此函数时,编译器是否忽略它,或者是否仍然进行调用?例如: 两行代码的执行时间是相同的,还是第一行需要更长的时间?

  • 我在ViewDidLoad函数中有一些代码,它将在调用堆栈的末尾设置一个类变量。我试图重构代码,使其成为一个单独的函数,它将返回值,而不是设置类变量。 由于我缺乏swift知识,我不确定哪里出了问题,我的函数似乎返回得太厄尔了,因为我可以在调试器中告诉我,它在被设置为之前跳转到return。 我还可以在调试器中看到,内部函数在返回主函数后调用。 如何等待内部调用完成后再返回?或者什么是正确的快速方