【发布时间】:2016-09-21 09:52:31
【问题描述】:
我有以下代码在多行中返回错误:
bool func()
{
if (acondition)
{
return 0;
}
return 1;
}
int cmdfun()
{
other_funcs;
if (func()) return ERROR#NUMBER;
other_funcs;
if (func()) return ERROR#NUMBER;
}
但我发现它变得越来越长。如何将 return ERROR#NUMBER 也封装到 func() 中?或者任何封装 if (func()) return ERROR;进入另一个独立的函数?
【问题讨论】:
-
为什么不使用为这种情况设计的异常?
-
@πάντα ῥεῖ 就是像func()->cmdfun()->main()这样封装调用栈的返回,这样func()就可以直接返回ERROR给main(),所以有将无需在 cmdfun() 中输入 return ERROR。
-
你不能encapsulate return改用上面提到的异常。
-
@ πάντα ῥεῖ 但这也不例外。它只是双重回报和封装回报。
-
好吧,如果你一直拒绝接受帮助,我们该怎么办?