dream

一个菜鸟程序员的成长历程

0%

学堂在线C++程序设计第十四章学习笔记

学堂在线C++程序设计第十四章学习笔记

异常处理

1
2
3
4
5
try{
throw //抛出异常
} catch (异常) {
//异常处理
}

异常接口声明

  • 一个函数显式声明可能抛出的异常,有利于函数的调用者为异常处理做好准备
  • void fun() throw(A,B,C)
  • 若无异常接口声明,则可以抛出任何类型的异常
  • 不抛任何类型异常的函数声明如下:
    void fun() throw()

异常处理的构造与析构

自动的析构

  • 找到一个匹配的catch异常处理后
  • 初始化异常参数
  • 将从对应的try块开始到异常被抛出之间构造(且尚未析构)的所有自动对象进行析构
  • 从最后一个catch处理之后开始恢复执行

标准程序库异常处理

基础

  • exception
  • logic_error 表示可以被预先检测到的异常
    • 这类异常可以避免
  • runtime_error 表示难以被预先检测到的异常