【发布时间】:2010-10-11 20:54:22
【问题描述】:
关于函数有一个try-catch的东西,我认为有时它可能非常有用:
bool function()
try
{
//do something
}
catch(exception_type & t)
{
//do something
}
所以问题的第一部分:这种风格在一般情况下被认为是不好的吗?
我使用这种方法的具体例子是:
我们的项目包含大量 c 和 c++ 代码。我们有自定义异常类型(不是 std::exception 派生的)。我需要集成 XML 库并将所有异常转换为我们的类型。因此,基本上,最后一步是从 XML 库中捕获所有异常并进行转换。
之前的功能:
bool readEntity(...)
{
while(...)
{
if(...)
{
//lot's of code...
}
}
}
之后:
bool readEntity(...)
try
{
while(...)
{
if(...)
{
//lot's of code...
}
}
}
catch(XMLBaseException & ex)
{
//create our exception and throw
}
我的想法是这样的:我明确表示我打算将所有从一种类型派生的异常转换为自定义类型,并且我们保持屏幕没有水平滚动条(因为水平滚动条不好)。
好吧,我实际上因为这种方法而受到批评,因为我在代码审查期间因为不清晰的方法而受到批评。
所以我想听听你的想法。
更新:明确一点:重构函数不是一种选择。实际上写得很好。
【问题讨论】:
-
类似问题(但不是重复的。但可能很有趣):stackoverflow.com/questions/335839/…
标签: c++ exception coding-style