【发布时间】:2011-05-09 12:33:07
【问题描述】:
我在 C++ 环境中工作并且:
a) 我们被禁止使用异常
b) 它是评估大量不同类型请求的应用程序/数据服务器代码
我有一个简单的类封装了服务器操作的结果,它也被内部用于那里的许多功能。
class OpResult
{
.....
bool succeeded();
bool failed(); ....
... data error/result message ...
};
当我试图让所有功能变得小而简单时,就会出现很多这样的块:
....
OpResult result = some_(mostly check)function(....);
if (result.failed())
return result;
...
问题是,让宏看起来像这样并在任何地方使用它是不好的做法吗?
#define RETURN_IF_FAILED(call) \
{ \
OpResult result = call; \
if (result.failed()) \
return result; \
}
我知道有人会说它讨厌,但有更好的方法吗? 您还有什么其他方法可以处理结果并避免大量臃肿的代码?
【问题讨论】:
-
如果需要清理怎么办?
-
好吧,我接受的答案被不喜欢的随机版主单方面删除了。
标签: c++ error-handling refactoring