关于出错处理的简单问题
数据结构教材上的一道题,让讨论三种出错处理的优缺点:
1.用cerr和exit(1)把程序终止.
2.用函数返回值0和1来区别是否正常返回.
3.加一个引用参数,来区别是否正常返回.
请教大家,尤其是后两个.
[解决办法]
1: 用exit语句终止,并返回报告错误;
致命错误这么做,如果是要打开的文件不存在之类的错误就不要exit了。
2:以函数的返回值区别正确返回或错误返回
如果你不关心为什么出错的话用这种 ,优点是方便,缺点便是不知道出错原因,不好debug了!
3:设置一个整型变量的函数参数以区别正确返回或某种错误返回
需要了解错误的详细原因用这个。
exit用于程序执行下去没有意义的时候,如果不是致命错误,尽量不要使用exit退出,大部分的错误都应该可以用程序作出适当的处理,没有人喜欢用一个动不动就出错退出的软件。
是否使用第2,3种处理方式要看在你的上下文中是否有处理这个错误的足够信息,要看上层是否关心这个错误.
[解决办法]
补充一下:
cerr是特殊的错误输出流,一般认为与cout相似,不过不能被重定向
加参数返回是为了将错误抛出给别人处理
虽然没有抛异常的这种处理