- 异常处理机制:暂缓问题处理,不在当前函数中处理,在其他调用者中处理
- 什么是异常,任何东西都可以认为是异常,错误只是异常的一种
- 异常一旦被抛出,不做处理,如果引发异常,会调用默认的abort终止程序
- 捕获和处理异常
throw抛出异常,(可以理解为返回值,值是任何类型都可以,使我们处理异常一个参照)
try(检查,捕获)和catch(处理异常)
//try 与catch必须是一起出现,并且他们{}不能省略
try
{
//正常需要检查是否存在异常代码
}
catch(类型)//理解为switch中case语句
{
//处理是根据抛出数据类型决定如何处理
}
//一个try可以对应多个catch
try
{
//...
}
catch(int)
{
}
catch(double)
{
}
catch(string)
{
}
//catch 和 if else _if 执行机制是一样的,只能执行一个匹配项
//删减符 ... 任何类型异常都捕获
//catch(...)
#includeusing namespace std; int divisor(int a, int b) { if (b == 0)//什么是异常 throw 0;//怎么抛出 return a / b; } void print(int a,int b) { cout << divisor(a, b); } int main() { try { print(1, 0);//引发异常不做处理 //print(1,0); cout << "别的代码" << endl; } catch (int) { cout << "除数不能为 0" << endl; } catch (...)//捕获任何类型的异常 { cout << "除数不能为 0" << endl; } return 0; }
- 异常处理中的传参
catch(int a) //隐藏一个传参操作
第12节 C++模板


