本文共 771 字,大约阅读时间需要 2 分钟。
<stdexcept>
定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。
目录:
逻辑错误都继承自logic_error
logic_error | 描述 |
---|---|
domain_error | 域错误 |
invalid_argument | 非法参数 |
length_error | 通常是创建对象是给出的尺寸太大 |
out_of_range | 访问超界 |
future_error | 未知错误 |
运行时错误都继承自runtime_error
runtime_error | 描述 |
---|---|
range_error | 边界错误 |
overflow_error | 上溢 |
underflow_error | 下溢 |
system_error | 系统错误 |
使用throw抛出异常。
void my_stdexcept(int val){ if (val < 0){ throw std::invalid_argument("invalid argument"); } else{ printf("test success.\n"); }}
try函数体中,将对可能出现的异常进行捕获。catch中对捕获后的异常进一步处理。
int main(int argc, char* argv[]){ try{ my_stdexcept(-1); } catch (std::exception ex){ printf("exception:%s\n", ex.what()); } return 0;}