注意:这是从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()
了答案 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.
}