重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
c语言标准库函数里没有error函数。C语言对异常的处理确实不够好,大多的时候都需要人工除错。
站在用户的角度思考问题,与客户深入沟通,找到西和网站设计与西和网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名、虚拟空间、企业邮箱。业务覆盖西和地区。
有几个类似的函数,分别处理各种情况下的异常:
ferror函数:在调用各种输入输出函数(如
putc.getc.fread.fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。
它的一般调用形式为
ferror(fp);如果ferror返回值为0(假),表示未出错。如果返回一个非零值,表示出错。应该注意,对同一个文件
每一次调用输入输出函数,均产生一个新的ferror函
数值,因此,应当在调用一个输入输出函数后立即检
查ferror函数的值,否则信息会丢失。在执行fopen函数时,ferror函数的初始值自动置为0。在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了errno的值。perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。
perror函数:
用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数
s
所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno
的值来决定要输出的字符串。
strerror函数:用来
从错误号码
查
用英文表达的错误内容,返回指针,指向这段英文字符串。如果你不知道错误号,那么在出错发生时,及时用
errno
的当前值
作参数,打印这段字符串。
c语言中exit()函数的用法:
用exit()函数可以退出程序并将控制权返回给操作系统,而用return语句可以从一个函数中返回并将控制权返回给调用该函数的函数。如果在main()函数中加入return语句,那么在执行这条语句后将退出main()函数并将控制权返回给操作系统,这样的一条return语句和exit()函数的作用是相同的。下例是一个使用了exit()函数和return语句的程序:
#include stdio.h
#include stdlib.h
int main (int, char** );
int do_processing (void);
int do_something_daring();
int main (int argc, char** argv)
{
int ret_code;
if (argc 3)
{
printf ("Wrong number of arguments used ! \n");
/* return 1 to the operating system * /
exit(1);
}
ret_code = do_processing ();
......
/* return 0 to the operating system * /
exit(0);
}
int do_processing(void)
{
int rc;
rc = do_aomcthing_daring();
if (rc == ERROR)
{
printf ("Something fiahy ia going on around here... *\n);
/* return rc to the operating syatem * /
exit (re);
}
/* return 0 to the calling function * /
return 0;
}
在上例的main()函数中,如果argc小于3,程序就会退出。语句“exit(1)”指示程序在退出时将数字1返回给操作系统。操作系统有时会根据程序的返回值进行一些相关的操作,例如许多DOS批处理文件会通过一个名为ERRORLEVEL的全局变量来检查可执行程序的返回值。
bad_alloc:new分配失败
bad_cast:dynamic_cast失败
bad_typeid:typeif参数为空
logic_error:逻辑错误
ios_base::failure:IO错误
runtime_error:运行时错误
bad_exception:未知错误
赋值不成功可以用runtime_error,你也可以自己继承一个异常类过来,自定义异常信息