经验分享: 项目中随处可见的std::runtime_error

最近有些懈怠,很碎的内容网上到处可见,这里权当做个纪念,后续的开发碰到要封装std::runtime_error场景,这些拿起来就可用。

个人思考问题总是断根弦,那就是特别不喜欢在已经很确定随时随地可以拷贝自由使用的组件上费心费力。

但是解决具体问题的时候,除了抽象一点的思考,很大部分时间都费在了这些很具体又很有用的小实现上,想要做一位稍稍高效的码农,这些已经证明符合商业规范的小组件要日积月累,拿起来就可用。

/** @file include/Exception.hpp */
#ifndef YOUR_OWN_EXCEPTION_HPP_
#define YOUR_OWN_EXCEPTION_HPP_

#include <string>
#include <stdexcept>

namespace your_own_exception
{

class Exception : public std::runtime_error
{
public:
    explicit Exception(const std::string &msg) : std::runtime_error(msg)
    {
    }

    explicit Exception(const char *msg) : std::runtime_error(msg)
    {
    }

    virtual ~Exception() = default;

    Exception() = delete;
};

class ConcreteError_1 : public Exception
{
public:
    explicit ConcreteError_1(const std::string &msg) : Exception(msg)
    {
    }
};

class ConcreteError_2 : public Exception
{
public:
    explicit ConcreteError_2(const std::string &msg) : Exception(msg)
    {
    }
};

class ConcreteError_3 : public Exception
{
public:
    explicit ConcreteError_3(const std::string &msg) : Exception(msg)
    {
    }
};

class ConcreteError_4 : public Exception
{
public:
    explicit ConcreteError_4(const std::string &msg) : Exception(msg)
    {
    }
};

class ConcreteError_5 : public Exception
{
public:
    explicit ConcreteError_5(const std::string &msg) : Exception(msg)
    {
    }
};

class ConcreteError_6 : public Exception
{
public:
    explicit ConcreteError_6(const std::string &msg) : Exception(msg)
    {
    }
};

}  // namespace your_own_exception

#endif  // YOUR_OWN_EXCEPTION_HPP_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值