2012年软考软件设计师辅导:异常的使用心得

来源:软件水平考试    发布时间:2012-11-04    软件水平考试视频    评论

    工欲善其事,必先利其器。在做一个项目时必定要先做好调试除错的预备在面向过程编程的时代都是以检测返回的错误代码来判定错误,可是这种方法的缺点是假如编写某一操作的时候可能出现的错误代码(比如说硬件操作)太多,那么最终用户将会陷入倒无穷无尽的检测代码中,可能会是这个样子

    UINT err=Functionxx(…);
    if(err==xxx)
    …
    if(err==xxx)
    …
    …
    …

    省略100行

    只有这样程序才能在出现意外的时候有所相应和恢复,但是由于错误处理太庞大了最终用户很可能这样

    if(Functionxx()!=SUCEEDED)
    exit(0);

    这样某些可能可以恢复的操作也无法幸免了,(比如说网络连接超时,终止运行太过分了吧,只要弹出个对话框就行了)

    在面向对象编程的时候,不可否认,很多人仍然还是这样排错的,其实各种面向对象的语言都提供了异常处理的手段(比如说Object Pascal,C++,本文以C++为例)

    下面是我的关于异常的一些使专心得

    对于各种用户来说,并不是每一种错误都是他关心的,非凡是小组开发的时候比如某一模块是关于文件操作的,那么编写这个模块的程序员只要注重关于文件操作失败的异常就行了,而网络模块的程序员只要知道网络出错的错误处理就行了,因此,我们可以定义一个这样的类

    class CBasicException
    {
    CBasicException(…);
    char* GetDescription();
    UINT GetErrorCode();
    …
    };

    然后再从这个类继续几个子类

    CFileException,CNetException…

    然后和具体某一类错误相关的具体的异常分别从上面的类里面继续,比如文件打开失败,空间不够等等

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答