程序中三种不同的出错处理方式比较

程序中三种不同的出错处理方式比较  


在程序设计中,常用下列3种不同的出错处理方式:
(1)用exit终止执行并报告错误
(2)以函数的返回值区别正确或错误返回
(3)设置一个整型变量的函数参数以区别正确返回或某种错误返回
它们有什么样的优缺点呢?



       第一种:用EXIT语句退出,是应用于发生关键性错误,比如你想打开文件并用于读取或写如时,或者动态分配内存空间时发生错误,如果不退出程序在后面对文件描述符或者分配的内存使用的话会发生严重错误,于是在这种错误的时候就必须用EXIT语句退出程序.
       第二种:当某个函数要完成某个特定任务,并将是否成功完成该任务的结果返回给调用这个函数的程序的时候,比如自己写的一个对SOCKET读写的函数,想往 SOCKET里写1000个字节的数据,如果写入正常则程序就执行下一不操作,如果写入错误则程序要提示用户重试,此时就需要返回不同的值来区别不同的状 态.
       第三种:用得少,通常用于该函数的执行结果对主进程没有严重的影响的时候.

1)用exit语句终止执行并报告错误,没有回收占用的资源,但一般不会出现问题,操作系统会自动回收。另外,退出地点太多不利于调试。如果封装一个exit调试函数就另当别论.
       2)以函数的返回值区别正确返回或错误返回比较容易发现错误的地方,不会直接终止程序的运行.但是判断太多,必须人工维护一份错误值列表,尤其是在写了越来越多的函数,错误值也越来越多的时候
       3)这个应该是省去了(2)的人工维护错误值列表. 应该是3个方法里比较好的吧..


       1::用exit语句终止,并返回报告错误。致命错误这么做,如果是要打开的文件不存在之类的错误就不要exit了。

2:以函数的返回值区别正确返回或错误返回如果你不关心为什么出错的话用这种

3:设置一个整型变量的函数参数以区别正确返回或某种错误返回需要了解错误的详细原因用这个。

exit用于程序执行下去没有意义的时候,如果不是致命错误,尽量不要使用exit退出,大部 分的错误都应该可以用程序作出适当的处理,没有人喜欢用一个动不动就出错退出的软件。是否使用第2,3种处理方式要看在你的上下文中是否有处理这个错误的 足够信息,要看上层是否关心这个错误.

猜你喜欢

转载自blog.csdn.net/u013455166/article/details/47042665