首页 > 编程语言 >C++-标准异常`<exception>`

C++-标准异常`<exception>`

时间:2023-04-29 18:11:22浏览次数:61  
标签:std exception C++ 标准 bad error 异常 class

C++-标准异常<exception>

std::exception 定义于头文件 <exception> class exception;

https://www.apiref.com/cpp-zh/cpp/error/exception.html

标准库头文件 <stdexcept>

https://www.apiref.com/cpp-zh/cpp/header/stdexcept.html

std::exception
std::bad_alloc
std::bad_cast
std::bad_exception
std::bad_typeid

std::logic_error 指示违背逻辑前提条件或类不变量的异常类
std::invalid_argument 报告非法参数的异常类
std::domain_error 报告定义域错误的异常类
std::length_error 报告试图超出最大允许大小的异常类
std::out_of_range 报告参数落在期待范围外的异常类
std::runtime_error 指示条件只可于运行时检测的异常类
std::range_error 报告内部计算中值域错误的异常类
std::overflow_error 报告算术上溢的异常类
std::underflow_error 报告算术下溢的异常类


<exception>

https://www.apiref.com/cpp-zh/cpp/error/exception.html

std::exception
定义于头文件 <exception>
class exception;
提供一致的接口,以通过 throw 表达式处理错误。
标准库所生成的所有异常继承自 std::exception

- logic_error
	- invalid_argument
	- domain_error
	- length_error
	- out_of_range
	- future_error(C++11)
	- bad_optional_access(C++17)
- runtime_error
	- range_error
	- overflow_error
	- underflow_error
	- regex_error(C++11)
	- system_error(C++11)
		- ios_base::failure(C++11)
		- filesystem::filesystem_error(C++17)
	- nonexistent_local_time(C++20)
	- ambiguous_local_time(C++20)
	- tx_exception(TM TS)
	- format_error(C++20)
- bad_typeid
- bad_cast
	- bad_any_cast(C++17)
- bad_weak_ptr(C++11)
- bad_function_call(C++11)
- bad_alloc
	- bad_array_new_length(C++11)
- bad_exception
- ios_base::failure(C++11 前)
- bad_variant_access(C++17)

成员函数

成员函数

(构造函数)		构造异常对象(公开成员函数)
(析构函数)[虚]	析构该异常对象(虚公开成员函数)
operator=		复制异常对象(公开成员函数)
what[虚]			返回解释性字符串(虚公开成员函数)

<stdexcept>

https://www.apiref.com/cpp-zh/cpp/header/stdexcept.html

namespace std {
  class logic_error;
    class domain_error;
    class invalid_argument;
    class length_error;
    class out_of_range;
  class runtime_error;
    class range_error;
    class overflow_error;
    class underflow_error;
}

标签:std,exception,C++,标准,bad,error,异常,class
From: https://www.cnblogs.com/yongchao/p/17364325.html

相关文章

  • Windows 11 启用 Hyper-V 之后网络上传速度异常慢解决方案
    最近在开发用的台式机上启用了Windows的Hyper-V虚拟化功能,利用虚拟机运行了一台WindowsServer2022和一台UbuntuServer,为了方便别的机器直接访问这两台虚拟机,所以网络采用了外部网络桥接的模式,让虚拟机和物理机保持在了同一网段。为了实现在这一目的,所以创建了一个虚......
  • C++用new创建的对象和不用new创建的对象的区别
     在C++中,使用new关键字来创建对象时,与不使用new关键字来创建对象时,会产生以下几个区别:内存管理:使用new关键字来创建对象时,由编译器来决定分配内存的方式,这样可以更有效地利用内存资源。而不使用new关键字来创建对象时,则需要手动分配内存,可能会浪费一些内存资源。对象生命周期......
  • 我刚才用了dynamic_cast 你给我普及一下C++ 中这几种类型转换吧
    我刚才用了dynamic_cast你给我普及一下C++中这几种类型转换吧在C++中,有几种类型转换的方式,包括:隐式转换在一些情况下,编译器会自动进行类型转换。比如将整型变量赋值给浮点型变量,编译器就会自动将整型变量转换为浮点型变量。但是在大多数情况下,使用隐式转换可能会引起一些问......
  • 出租车收费标准
    经常做出租,总结一下吧。各地市收费不相同,但机制类似,以河北为例:1.起步价:3公里8元(油价上涨上调为8.5元);2.公里运价1.6元;3.空驶费:超过6公里后,在每公里运价的基础上加收50%,往返载客不收空驶费;4.等候费:每等候5分钟增加1公里运价,不足5分钟不收费;5.往返租车费按车公里运价的90%......
  • 4-28打卡c++ string容器
    1#include<iostream>2#include<string>3usingnamespacestd;4//assign5voidtest01()6{7stringstr1;8//截取三个字符9str1.assign("hello,world",3);10//从第三个字符开始截取4个字符11str1.assign("hello,worl......
  • C++ 中 string自带的find()详解
    首先find()函数存在于string对象中,对于任何一个string类对象都自带find函数,这意味着我们可以对find函数进行重载。find()一共可传七个参数,但是常用的的只有四种情况:对于C++98来说:string(1)传入两个参数,一个是对另一string对象的常引用,一是开始查找的位......
  • c++中的构造函数
    C++中的构造函数可以分为一下几种:默认构造函数初始化构造函数(有参数)拷贝构造函数移动构造函数(move和右值引用)委托构造函数转换构造函数#include<iostream>usingnamespacestd;classStudent{public:Student(){//默认构造函数,没有参数this->age=20......
  • C++中函数重载和重写的区别是什么?
    函数重载:利用命名矫正(namemangling)技术,在编译时把函数名加上参数的首字母来区分同名函数。需要满足3个条件:1.同一个作用域下2.函数名相同3.函数参数类型不同,参数个数不同,参数顺序不同 示例:1......
  • c++中如何强制访问类的保护(protected)/私有(private)性质的成员函数和成员变量
    在使用第三方代码库时,有时候需要访问某个类的函数或者变量,但该对象是保护或者私有的,导致无法正常访问。其实,通过一个简单的友元friend类或函数,可以轻松突破编译器的限制。下面是代码实例。假设第三方库有person类,定义如下。classPerson{private:intage=18;}那么如果强......
  • 异常处理措施
    异常处理措施——针对有效的错误处理设计异常管理系统作者:Jean-PierreNorguet,JavaWorld.com,11/15/071.           摘要在面向对象的应用程序中,由于代码重载、错误的问题处理方式,导致异常有越来越多的趋势。在这篇文章中,作者Jean-PierreNorguet介绍了如......