参考链接:https://www.runoob.com/cprogramming/c-error-handling.html
遇到错误,大多数C或者UNIX会返回1或者NULL,同时会设置一个errno,这个errno是全局变量
所以你可以通过检查返回值是否代表错误
C语言提供了perror()、和strerror()来显示与errno相关的信息
引入头文件
#include <errno.h>
#include <string.h>
perror("自定义的提示信息")
显示你传给它的字符串,后面跟一个冒号,然后跟上errno值对应的文本表示形式(即出错信息)strerror(number)
返回一个指针,指针指向errno为number时所对应的文本提示信息
extern int errno;
...
fb=fopen("no_exist_filename","rb");
if(fb==1){
fprintf(stderr,"错误号:%d\n",errno);
perror("通过 perror 输出错误");
fprintf(stderr,"打开文件错误:%s",strerror(errno));
}
#输出
错误号: 2
通过 perror 输出错误: No such file or directory
打开文件错误: No such file or directory
**注意应该通过stderr文件流来输出所有的错误
抛出异常的方式
//引入头文件
#include <stdlib.h>
//异常的时候
exit(-1);
//正常的时候
exit(0)
通常情况下,程序运行成功的时候会带有值EXIT_SUCCESS,这是个宏,它被定义为0,而如果程序运行中出现了错误,退出程序时带有状态值EXIT_FAILURE,他被定义为-1;
所以上面的可以写为
//异常
exit(EXIT_FAILURE);
//正常
exit(EXIT_SUCCESS);