我很确定这里有类似的问题,但我找不到。
假设我有几个函数,它们可能会抛出整个异常层次结构——比如说N种异常类。
现在,有没有一种很好的方法来处理所有这些异常,而不是用N 块编写多次相同的代码catch
?
我实现这一点的(非常丑陋的)方法是使用宏。其他想法?
所有函数都有不同的输入/输出参数和返回类型
编辑
是的,所有异常都有相同的基类——它是一个层次结构。但是不同的类有不同的附加信息。
例子:
try
{
object->execute( ... );
}
catch( type1& ex )
{
// ...
}
//...
catch( typeN& ex )
{
// ...
}
// some other code
// and again:
try
{
object->do_something_else( ... );
}
catch( type1& ex )
{
// ...
}
//...
catch( typeN& ex )
{
// ...
}
// and so on