关于c++里面的错误和异常的一个理解!

pengzhixi 2009-07-10 05:53:18
好像c++里面对错误和异常没给出一个很明显的区分!所以想听听各位大牛的理解!!
...全文
24 点赞 收藏 27
写回复
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzh9955 2009-07-14
本来这种语言就存在难以理解的方面
回复
huizhouxueyuan 2009-07-14
有个老师告诉我,exception 不应该理解成 “异常”, 而应该是 “例外”
回复
mengjfu 2009-07-13
错误在编译时出现
异常在执行是出现
个人观点!
回复
ztenv 版主 2009-07-13
个人感觉C++中的异常和错误区别不大,有些错误在编译的时候是检查不出来的,比如:两个变量相除,如果除数在你输入的过程中为0,那么是需要你自己判断的;
这样以来,感觉C++异常处理其实很麻烦(比如:我在读一个文件的时候,对所读的文件有很多规则:文件名命名方式,后缀名,编码方式,文件的格式等有很多要求,在我真正证一个文件的时候,要一个一个的去判断是否正确,要写很多的if或用一个循环来判断);
不知道C++的牛人们是如何处理异常的;学习中。。。。。。
回复
gunsand 2009-07-13
看情况了。我只是偶尔用下异常处理。
回复
lingyin55 2009-07-13
楼主参考下这个帖子的讨论
http://topic.csdn.net/t/20041010/09/3439259.html
回复
hiboys 2009-07-13
要区分吗?
想想c语言中的错误吧。它是没有异常的


c++把大部分错误封装成异常了。给你个错误处理机会。有问题的程序可以“体面”退出了。
回复
yangf1983 2009-07-13
2楼的解释的很清晰了
回复
ysysbaobei 2009-07-11
顶下
回复
steven_007 2009-07-11
个人理解异常是由于程序出错引起的。异常就是处理这种错误。
回复
lambert_s 2009-07-11
个人理解:异常时程序运行中的不可预料的操作失败,比如申请内存失败。使用异常是为了发生这些异常时能让程序保持正常运行。
而错误就是编程时出现的问题。一般程序运行时发生错误是很严重的,在编程时就要避免错误的产生,而异常不能完全避免。
回复
ToBeTough 2009-07-11
up
回复
jzd8000 2009-07-11
可以避免的是错误。
只能完善的是异常。
(个人理解)
回复
caremsi 2009-07-11
好帖
回复
lzh9955 2009-07-10
关注!
回复
zzcmx2008 2009-07-10
异常可以捕捉,错误可以在编译连接的时候由编译器给出。
回复
Walf_ghoul 2009-07-10
[Quote=引用 10 楼 pengzhixi 的回复:]
帖子沉得太快了。
[/Quote]
帮顶下。。
回复
pengzhixi 2009-07-10
帖子沉得太快了。
回复
fairchild811 2009-07-10
区别在于错误是可以预见到并且知道如何处理的情况而异常是指出错了但不知如何去处理的情况。或者说:如果知道出错后该怎么处理就可以直接处理该错误,否则就将其作为一个异常抛出(在知道如何处理地方捕捉该异常然后进行处理)。
c++异常相对返回错误码的优点:
1. 可以强制对该错误进行处理,如果不处理则程序coredump
2. 可以从内层嵌套中直接跳出
3. 代码更简洁
4。会进行堆栈解退
缺点:
1。增加一定的开销
2。破坏的程序的结构性。
3。要正确使用异常机制不太容易,有很多需要小心的地方
回复
pengzhixi 2009-07-10
[Quote=引用 7 楼 findcsdn 的回复:]
错误有时候可以转化为异常,比如空指针错误,可以通过异常捕获的。
[/Quote]

我同意这种说法,只不过有的时候,大多数错误应该是我们自己去避免而非转换成异常去捕获!
回复
发动态
发帖子
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
社区公告
暂无公告