关于异常的设计
在程序设计的时候,大家是否很少给函数设计异常规格,
方正我是很少了。于是在一些函数里面,经常凭感觉catch一些
自己认为可能抛出的异常,如:
try{
foo()
}catch(std::bad_cast&)
{
.....
}
甚至是多处充斥着catch(...);
这样的异常处理让我感觉自己的代码很丑陋,
可是给每个(或者说是大多)函数设计异常规格,总感觉是一件很难做的事情。
怎样解决这个问题呢?根据一些大师的文章,在和与一些个人的想法,这样的想法
是否是个方法呢?
创建一个异常基类baseexc,所有的异常通过这个基类派生如logsexc,让后可以这样声明自己的函数
void foo( )throw(baseexc);
即使foo抛出了其他异常,违反异常规格,我们也可以通过
set_unexpected( );函数抛出baseexc来解决。
最后我们程序就可以这样写
try{
foo();
}catch(logsexc& loge)
{...}
catch(baseexc& r)
{....}
以上是个人的想法,权做抛砖引玉之用,因为我感觉,好像在论坛里面,讨乱
异常的很少,但又是基本天天碰到的问题。希望多多指点,多多发言。也是学习的
好过程吧!