跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组
折叠
品牌标识

D2Learn Forums

  1. 主页
  2. SubForums
  3. 现代C++ | mcpp论坛
  4. 请教如何自定义异常

请教如何自定义异常

已定时 已固定 已锁定 已移动 未解决 现代C++ | mcpp论坛
c++异常处理
1 帖子 1 发布者 16 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • wlly-lzhW 离线
    wlly-lzhW 离线
    wlly-lzh
    编写于 最后由 编辑
    #1

    我是一个会一点C++的菜鸟,我需要在自己的代码里面自定义一个异常类,然后我的代码的写法类似于下面这样:

    #include <exception>
    
    class myException : public std::exception {
    	private:
    		const char * msg;
    	public:
    		myException(const char* message) noexcept : msg(message){}
    		const char * what() const noexcept override{
    			return msg;
    		}
    };
    

    感觉这样写好像不太对,自己看了一下std::exception、std::runtime_error、std::logic_error的代码,发现std::runtime_error和std::logic_error都是用__cow_string这个结构体来存储字符串信息的,代码如下:

    struct __cow_string
      {
        union {
          const char* _M_p;
          char _M_bytes[sizeof(const char*)];
        };
    
        __cow_string();
        __cow_string(const std::string&);
        __cow_string(const char*, size_t);
        __cow_string(const __cow_string&) _GLIBCXX_NOTHROW;
        __cow_string& operator=(const __cow_string&) _GLIBCXX_NOTHROW;
        ~__cow_string();
       __cow_string(__cow_string&&) noexcept;
        __cow_string& operator=(__cow_string&&) noexcept;
    };
    

    貌似只有声明,看不到实现。
    所以到这里来请教一下。

    1 条回复 最后回复
    0
    • ,wlly-lzhW wlly-lzh 将这个主题转为问答主题

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    d2learn forums Powered by NodeBB
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门
    • Online Tools
    • 用户
    • 群组