对异常的一些体会、认识
来源:互联网 发布:php 删除文件 编辑:程序博客网 时间:2024/05/16 01:38
异常,是什么?这个问题困扰我很久了。最近,用过几次异常,对异常也有了点认识、体会。这些都是我个人体会,不知道对不对,希望能探讨下,指点下,谢过。
书上经常说的一点是,C++相对于C而言,多了异常处理机制。那么,异常究竟是什么?我觉得,异常就是在处理的时候发生了错误,然后通过异常告知上层调用函数。而相对于C而言,只有错误处理:当碰上错误的时候,会设置一个错误码,而每一个错误码对应特定的意思。比如说errno.h中有个全局变量errno;再比如说,许多C代码中,会自定义许多错误码,然后在特定的情况下设置特定的错误码。
书上经常说的一点是,C++相对于C而言,多了异常处理机制。那么,异常究竟是什么?我觉得,异常就是在处理的时候发生了错误,然后通过异常告知上层调用函数。而相对于C而言,只有错误处理:当碰上错误的时候,会设置一个错误码,而每一个错误码对应特定的意思。比如说errno.h中有个全局变量errno;再比如说,许多C代码中,会自定义许多错误码,然后在特定的情况下设置特定的错误码。
也就是说,异常处理,说白了就是错误处理。只不过,C++/Java把它封装成一个类抛了出来,而C的话则是记录成一个错误码。相对而言,异常更明了,更方便;而错误码需要先定义,然后还有进行映射,然后才能知道是什么错误。另外,异常处理可能更加全面一点,如果碰上未知的错误,那么可以用"..."来捕获;而C的话,未知错误就无可奈何了。
//--------------------------------------------------------------------------------------------------------------------------------------
这里又有了一些新 的认识,追加在后面。
用过几次错误码(异常没怎么用过),发现这些东西最难控制的就是:用哪一层的错误码?一个函数调用会有多层,比如说5层(这个还是很正常的),第5层的时候发生了错误,返回一个错误码;那么低4层的时候获取到这个错误之后,是用第5层返回的错误码?还是处理第5层的错误码之后,自己定义一个错误码返回?就是说:什么时候直接返回被调用函数的错误码,什么时候是处理被调用函数的错误码?这一点是很难区分、定义的。
而异常,我感觉和错误码类似:catch之后是处理和还是直接将这个异常抛出?这个也是个难点。
关于这个难点,感觉似乎跟架构设计有关:设计架构的层次,那个层次用哪些错误码或者异常。(不知道是不是这样子的)
- 对异常的一些体会、认识
- 对“敏捷”的一些体会
- 对一些外国人的认识
- 对自已的一些认识
- 对DataReader的一些认识
- 对存储的一些认识
- 对世界的一些认识
- 对编程的一些认识
- 对“自学”的一些认识
- 对总线的一些认识
- 对java的一些认识
- 对计算机网络的一些认识
- 对经济的一些认识
- 对递归的一些认识
- 对serlvet的一些认识
- 我对PMP考试的一些体会
- 对领域模型的一些体会
- 个人对SQLite使用的一些体会
- Hadoop通过C的API访问HDFS
- boost c++编译备忘
- java 多线程
- 传递对象
- Windows编写第一个程序注意:
- 对异常的一些体会、认识
- 如何动态修改ddraw 表面的width和height
- (转)URLDownloadToFile
- 黑马程序员——Java集合类
- (转)为 URLDownloadToFile 实现进度条
- Ubuntu挂载LVM磁盘
- 格式化XML
- ADB报“no device”提示的解决方法
- C++ 跨平台应用