C++的(try catch throw)异常处理的简单总结

设计的关键字: try catch throw
try{}:括起来的是,有可能产生异常的代码;
catch:必须跟在try的后面,一个try后面可以跟多个catch块,每一个catch()的参数列表中,都需要填写一种异常的类型,用来捕获代码抛出的相应的异常数据,在catch块进行处理,处理完成后,代码逻辑继续向下正常运行。throw:用来抛出异常数据的,可以是任意类型的异常数据。
什么是异常的栈展开?(问的就是异常的处理过程)
main -> func1 -> func2 -> func3 -> … -> funcnn-1 -> funcn 从左向右,就是整个函数的调用链当funcn函数栈上抛出异常(throw),首先会看当前funcn有没有try catch能够处理该异常(如果有,
处理完异常,代码继续向下运行),如果funcn没有try catch,那这个异常会沿着函数调用链往上抛
出,在任何一个函数的调用栈上,都做上面的重复处理。如果异常在main函数也没有得到处理,该异常就会抛给系统,系统发现当前进程有一个异常没有被处理,就会强制调用abort函数,直接终止进行的运行。
catch块捕捉异常应该怎么设计

try{
}catch(int err){}
catch(string err){}
catch(…){} // 捕获捕获任意类型的异常


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部