当前位置:  开发笔记 > 编程语言 > 正文

创建从std :: exception派生的用户异常?

如何解决《创建从std::exception派生的用户异常?》经验,为你挑选了1个好方法。

如何从标准异常创建用户异常类?

解决下面的情况说我有一个带有一些枚举的类,表示对象的类型

所以基于类型,成员函数是可用的.不可用的调用成员函数应抛出异常.类似地,当再次调用未初始化的getter时,应抛出异常(我使用默认参数来检查未初始化的对象).



1> Martin York..:

您应该从std :: runtime_error或其他标准异常(参见)派生而不是直接从std :: exception派生.除了描述究竟发生了什么之外,它还正确地定义了what()方法.

此外,通常最好为每个问题定义一个不同的异常,而不是使用枚举.这允许try catch机制捕获适当的问题,但这完全取决于你的确切情况,没有进一步的信息,很难知道.

class myException: public std::runtime_error
{
    public:
        myException(std::string const& msg):
            std::runtime_error(msg)
        {}
};

但:

so based on type, member functions are available.Calling member function
that is not available should throw an exception.

这闻起来很有趣(如Martin Fowler Smell(看看他的书)).

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有