如何使用c++的标准异常类以及如何处理异常类

 时间:2026-02-13 11:59:46

1、1.c++语言本身的异常处理

1> 操作符new失败会抛出bad_alloc异常

2> 动态型别转换失败时(如:dynamic_cast转换失败的时候)会抛出bad_cast

3> 执行期间类别便是过程中,如果传递的参数或者指针为空而抛出的异常为:bad_typeid

4> 如果发生了非预期的异常,就会抛出bad_exception异常

class  C;

class C1; //定义两个类

 void function() throw(C ,std::bad_exception)

{

      throw C;    //正确的接受到异常

      throw C1;//接受到非预期的异常 unexception

}

2、2. c++ 标准库发出的异常

c++标准库发出的异常比较多,他的所有异常总是派生自logic_error,使用它能避免在程序中产生一些逻辑错误。

1> invalid_argument 无效参数。

2> length_error 长度越界

3> out_of_range 错误索引(如数组,或者stl容器的错误索引)

4>domaln_error 专业领域范畴外的错误。

3、3. 程序作用域外的异常

程序作用域外的异常派生自runtime_error,用来指出不再范围内,且不容回避的事情。

range_error   内部计算时发生的错误

overflow_error 算术运算发生上溢

underflow_error  算数运算发生的下溢

4、4. 异常处理

为了能接受到异常并能在catch中捕获并处理异常,你必须采用标准库所采用的标准接口,这个标准接口之含有一个成员函数what(),用于获取异常信息,他返回一个以null结束的字符串。

namespace std{    class Execption()    {     virtual const char* what()const throw;    };}

这样你就可以打印错误信息

5、5.自定义异常处理类

通过继承标准的异常类,你就可以编写自己的异常处理函数。

namespace wdd{    class wddException : public Execption()    {    public:        wddException ();        virtual const char* what()const throw;            };}

void function()

{

....

   throw wddExecption(...);

}

  • pycharm怎么debug管理配置
  • VS如何对Python分析设置
  • VS2019如何开启自动调整允许的最大键入延迟
  • 更改visual studio 2010的环境变量
  • 开启 Notpad++ 代码提示功能
  • 热门搜索
    rose什么意思 什么是平仄 单反是什么意思 相信的反义词是什么 什么是新闻 丁香花是什么颜色的 乙肝表面抗原阴性是什么意思 record是什么意思 pgone是什么人 呲牙是什么意思