首先要知道什么是异常?
异常是程序运行时会遇到的错误事件,会导致程序无法正常运行下去而产生中断(属于内中断)。产生异常的情况很多例如试图打开一个不可用的文件,请求过多的内存或者遭遇不能容忍的值。
那么处理异常的方式有多种,先介绍两种简单的处理方式。
(1)调用abort()进行异常终止
函数原型位于头文件<stdlib.h>中,实现向标准错误流发送消息然后终止程序。各个不同的编译器可能显示的中断消息不同(如果程序是由父进程调用的则告诉父进程)。
例如:int division(int a,int b)
{
if(b==0)
abort();
return a/b;
}
当然exit()函数,不同的是它不会显示任何消息。
(2)使用函数的返回值来指出问题(返回错误码,不会终止程序)
这种方法使用指针参数或引用参数来返回原来函数功能所返回的数(若原来返回为void,则不需要这和参数),而现在的返回值用来指出成功还是失败。
例如:
bool division(int a,int b,int* res)
{
if(b==0)
{
res=nullpre;
return false;
}
*res=a+b;
return true;
}
另一种在某个地方存储返回条件的方法是使用一个全局变量,在出现问题时将该全局变量设置为特定的值,而调用程序可以检查该变量。典型例子就是C语言种的全局变量errno.