作者:杨 | 来源:互联网 | 2023-05-17 18:09
<stdexcept>定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。目录:logic_errorruntime_errorth
定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。
目录:
- logic_error
- runtime_error
- throw
- try catch
logic_error
逻辑错误都继承自logic_error
logic_error |
描述 |
domain_error |
域错误 |
invalid_argument |
非法参数 |
length_error |
通常是创建对象是给出的尺寸太大 |
out_of_range |
访问超界 |
future_error |
未知错误 |
runtime_error
运行时错误都继承自runtime_error
runtime_error |
描述 |
range_error |
边界错误 |
overflow_error |
上溢 |
underflow_error |
下溢 |
system_error |
系统错误 |
throw
使用throw抛出异常。
void my_stdexcept(int val)
{
if (val <0){
throw std::invalid_argument("invalid argument");
}
else{
printf("test success.\n");
}
}
try catch
try函数体中,将对可能出现的异常进行捕获。catch中对捕获后的异常进一步处理。
int main(int argc, char* argv[])
{
try{
my_stdexcept(-1);
}
catch (std::exception ex){
printf("exception:%s\n", ex.what());
}
return 0;
}
本文源码:stdexcept
参考文献:zhangyulin54321的专栏,c++中exception和stdexcept,2017年7月16日