做开发不仅仅要考虑到业务逻辑更要在写代码时将各种可能考虑周全,但是这又是很难的事情,毕竟开发就是个人的事,而使用者可能上万甚至百万级别。这时,程序的稳定性就极为重要,我们不能让程序因为某一处运行出问题而就直接导致程序或者产生其他更严重的后果,比如:做除法时当除数为零时,数组访问越界时,容器capacity不足而继续存储时等等,这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃。
异常处理的作用
运行时错误如果放任不管,系统就会执行默认的操作,终止程序运行,也就是我们常说的程序崩溃(Crash),如果我们能知道程序大概在什么地方出错,出错是什么类型的,那么开发者就能根据对应的错误类型做出相应的处理。下面通过一个简单的例子对比一下:
#include "stdafx.h"#include #include using namespace std ;int _tmain(int argc, _TCHAR* argv[]){string test = "i love u" ;char test_char = test.at(10) ;cout<
很明显test长度没有10,而test.at(10)显然会报错,并且at()是会在此时抛出异常的,但是我们并没有写异常处理代码,所以程序运行到test.at(10)就会崩溃从而自动退出。加上异常处理后看一下:
#include "stdafx.h"#include #include using namespace std ;int _tmain(int argc, _TCH