C 错误处理

参考链接: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);
上一篇:python – 何时使用sys.stdout而不是sys.stderr?


下一篇:python – stderr.write;打印字符串