typedef std :: runtime_error MyError vs class MyError:public std :: runtime_error

时间:2011-03-28 17:49:04

标签: c++ exception typedef

我目前正在项目中实现一些自定义异常,并且无法决定输入我的异常或为每个异常派生一个新类。对每个人的潜在利弊感兴趣,如果一个人更喜欢?

3 个答案:

答案 0 :(得分:3)

推导自己的类的优点很简单:你可以在catch处理程序中发送它。

如果你决定不实现自己的类,我仍然怀疑你需要这个typedef:你从中抽象出来的是什么?您也可以使用普通std::runtime_error

另外,您可能对David Abrahams'es有关异常处理和实现自己的异常类的文章感兴趣。

答案 1 :(得分:2)

导出一个新类 - 然后你可以在它们之间进行区分。如果你输入type,那么异常处理程序无法知道throw中使用了哪个typedef。

答案 2 :(得分:0)

我对你的问题有点难以理解,但是如果你正在制作自己的自定义异常,我想我会使用派生类,以防你以后想要改变行为。