浅谈C++ 标准库中的异常 —— stdexcept类
定义了一些标准的异常类。分为两大类:逻辑错误和运行时错误。其中运行时错误是程序员不能控制的。
目录:
- 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");}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
