异常处理

#include <stdio.h>
#include <errno.h>
#include <string.h> 

/*
错误类型的错误号,由系统定义,是一个全局变量,不同异常对应不同错误号
需要提前定义,默认为0,表示程序没有异常,当出现异常时,该值置为非零
*/
extern int errno;	

int main()
{
	FILE *pf;		// 文件指针
	int errnum;		// 接收:错误类型的错误号
	pf = fopen("unexist.txt", "rb");	// 定义一个不存在的文件来引发异常
	
	/* 下面是异常处理 */
	if(pf == NULL)	// 表示该文件不存在,即将发生异常
	{
		// 错误号
		errnum = errno;	
		// 将错误文本信息赋值到 stderr 错误输出流进行错误信息的自动输出
		fprintf(stderr, "错误号:%d\n", errnum);
		// perror 函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。
		perror("通过 perror 输出错误");
		// strerror 函数返回一个指针,指针指向当前 errno 值的文本表示形式。
		fprintf(stderr, "打开文件错误:%s\n", strerror(errnum));
	}
	else
	{
		fclose(pf);
	}

	return 0;
}

 

 

posted @ 2018-02-25 11:20  半生戎马,共话桑麻、  阅读(122)  评论(0)    收藏  举报
levels of contents