【C++温故知新】异常处理

2019-08-28  本文已影响0人  超级超级小天才

这是C++类重新复习学习笔记的第 八 篇,同专题的其他文章可以移步:https://www.jianshu.com/nb/39156122

异常的抛出与捕获

异常是程序在执行期间产生的问题,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:trycatchthrow

使用throw可以在一些特定的时候令程序抛出异常,比如当遇到除数是0的时候:

if(division == 0)
    throw "division by zero condition!";

一个try……catch的写法通常是这这样的:

try
{
    // protected codes
}
catch( ExceptionName e1 )
{
    // catch block
}
catch( ExceptionName e2 )
{
    // catch block
}

如果要捕获所有的异常,则需要在catch的括号中使用省略号:

try
{
    // protected codes
}
catch( … )
{
    // catch block
}

定义新的异常

可以通过继承和重载exception类来定义新的异常,比如像下边这样:

struct MyException : public exception
{
    const char * what() const throw()
    {
        return "New Exception";
    }
};
 
try
{
    throw MyException();
}
catch ( MyException& e)
{
    cout << "MyException caught" << endl;
    cout << e.what() << endl;
}
catch (exception& e)
{
    // other exceptions
}

转载请注明出处,本文永久更新链接:https://blogs.littlegenius.xin/2019/08/28/【C-温故知新】八异常处理/

上一篇 下一篇

猜你喜欢

热点阅读