assert(bool);
当assert中的bool为假时,就中断程序,停止运行程序
输出了123但是没有输出ahhaha了,因为在assert(0)就中断了
注意:
1、assert的头文件在#include<assert.h>中
try{
}catch(){
}处理错误异常
抛出整数1,捕获bool的异常,不匹配,所以只有try的throwing
类型匹配,又有throwing又有Exception caught
三个点是捕获所有类型的异常,所以既有throwing又有Exception caught
注意以上代码↑
并没有输出goal,是因为抛出异常就直接去找对应的catch去了,不会执行之后的内容,
再次注意以上代码:
并没有输出Exception caught,是因为找到对应的第一个catch(int)过后就结束try_catch执行了,继续之后的代码执行
再次注意以上代码:
hello world是输出了的,证明try_catch是不会终止程序的运行的
throw中的MyException中的s为hello world把它传给了runtime_error的构造函数中的s去了
既然调用了构造函数,自然要cout << "Exception" << endl;
又因为捕获到了runtime_error的错误,所以re.what()输出的就是s的值,那就输出了hello world
异常处理发生在栈上