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

定义自己的异常类的最佳实践?

如何解决《定义自己的异常类的最佳实践?》经验,为你挑选了2个好方法。

我有一些特殊的异常情况,我想抛出并捕获,所以我想定义自己的异常类.

有什么最好的做法?我应该继承std::exception还是std::runtime_error



1> sth..:

是的,这是很好的做法,继承从std::runtime_error或其他标准的异常类一样std::logic_error,std::invalid_argument等等,这取决于哪种例外的是.

如果所有异常都从某种方式继承,std::exception那么很容易通过a捕获所有常见错误catch(const std::exception &e) {...}.如果你有几个独立的层次结构,这会变得更加复杂.从专门的异常类派生会使这些异常带来更多信息,但这实际上有多么有用取决于您如何进行异常处理.


抓住const ref:catch(std :: exception const&e)

2> si618..:

我不是C++开发人员,但我们在C#代码中做的一件事是为我们的框架创建一个基类异常,然后记录构造函数中抛出的异常:

  public FrameworkException(string message, Exception innerException)
      : base(message, innerException)
  {
      log.Error(message, innerException);
  }

  ...

任何派生异常只需调用它的基本构造函数,我们就可以获得一致的异常日志记录.没什么大不了的,但很有用.

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