美文网首页
读书笔记 - C++异常处理机制

读书笔记 - C++异常处理机制

作者: Dean_mmm | 来源:发表于2019-01-02 16:15 被阅读0次

    这是在做项目的过程中碰到异常处理,就看书稍微总结了下,这篇读书笔记只是一个小结,写这个的目的更多的是想留给自己看

    异常的定义
    程序执行过程中发生的不正常状态。

    异常处理的优点
    增加程序健壮性;将错误处理代码与正常程序分隔开;函数可以将异常抛给其调用者。

    异常处理的特点
    throw 语句相当于一个内部函数调用,只是调用的不是函数而是catch块。 但是与内部函数调用不同的情况是catch块执行完后程序流不会返回到throw语句而是会执行catch块的下一条语句。而且catch块没有返回值。

    异常处理模版
    try{
    Code;
    throw exception;
    More Code;
    }
    catch(type e){
    Code to process the exception;
    }
    throw catch 的参数type可以用 int 这些基本类型也可以用C++预定义的类,这些类的根为(exception),包含一个虚函数what();这个函数返回一个异常对象的错误信息。
    也可以自定义异常类,但通常要派生于exception。

    多重异常捕获
    try{
    }
    catch ...
    catch ...
    多个catch块中的不同类型异常的次序很重要。基类对应 的catch块要在其派生类之后。
    异常的传播

    异常传播
    重抛出异常 (rethrow)
    如果在异常处理中无法处理一个异常,或者它想通知调用者发生了一个异常C++允许它重新抛出一个异常。
    try{
    statements;
    }
    catch(TheException &ex){
    ...

    异常规约
    在函数头部声明异常规约,表面这个函数会抛出什么异常。有利于写出健壮的程序。
    e.g. void check(double side) throw(runtimeexception)
    何时使用异常处理机制
    异常处理机制是用来解决意外错误状态的,不要用try-catch来处理简单的、意料内的情况。

    相关文章

      网友评论

          本文标题:读书笔记 - C++异常处理机制

          本文链接:https://www.haomeiwen.com/subject/nqwzlqtx.html