c#return也返回调用函数 - 类似于PHP' die()的早期版本

时间:2018-01-03 09:11:42

标签: c# php

注意:这是从C#的PHP角度来看的问题。也许这不是正确的方法,但这就是我想要做的事情。

假设您已定义:

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

你用另一种方法称呼它:

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

  // do stuff
}

是否有可能让Die()也在'#34;父母"调用它的方法?

一个例子:

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

  // do stuff
}

看起来try-catch对此来说太过分了,但是我宁愿只能调用一个能够阻止当前"父母"功能。也许我的想法太像PHP's die()

2 个答案:

答案 0 :(得分:1)

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

你说的用例听起来似乎无论如何都会更好地处理,说实话。这是C#惯用的错误处理机制。

如果您想在没有的情况下使用例外收集错误,则必须明确返回。

答案 1 :(得分:1)

通常您为此目的使用例外。只需抛出Exception

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

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

try
{
    // Something that can call Die.
}
catch (Exception ex)
{
    // Something threw an exception. Now handle it.
}