c风格用goto处理函数的错误返回清理工作等,c++是否只能用异常?do while结构遇到逻辑里面有循环就歇菜了。。
int foo()
{
ReportInfo rinfo;
int ret = 0;
ret = dosth1();
if (ret != 0)
{
goto error_handler;
}
handle_logic1(&rinfo);
ret = dosth2();
if (ret != 0)
{
goto error_handler;
}
handle_logic2(&rinfo);
error_handler:
rinfo.set_ret(ret);
ReportTo(rinfo);
return ret;
}