C++ 异常处理
C++中的异常处理是处理运行时错误的过程。我们进行异常处理是为了在运行时错误发生后仍然保持应用程序的正常流程。
在C++中,异常是在运行时抛出的事件或对象。所有异常都是从std::exception类派生出来的。它是可以处理的运行时错误。如果我们不处理异常,它会打印异常消息并终止程序。
优点
它维护了应用程序的正常流程。在这种情况下,即使发生异常,其余的代码也会继续执行。
C++异常类
在C++标准库的<exception>
类中定义了标准异常,我们可以在程序中使用它们。父子类层次结构的排列如下所示:
所有C ++中的异常类都派生自std :: exception类。让我们来看一下C ++常见异常类的列表。
异常 | 描述 |
---|---|
std::exception | 这是一个异常,是所有标准C++异常的父类。 |
std::logic_failure | 这是一个可以通过读取代码来检测的异常。 |
std::runtime_error | 这是一个无法通过读取代码来检测的异常。 |
std::bad_exception | 它用于处理C++程序中的意外异常。 |
std::bad_cast | 这个异常通常由 dynamic_cast 抛出。 |
std::bad_typeid | 这个异常通常由 typeid 抛出。 |
std::bad_alloc | 这个异常通常由 new 抛出。 |
C++异常处理关键字
在C++中,我们使用3个关键字进行异常处理:
- try(尝试)
- catch(捕获),和
- throw(抛出)
另外,在接下来的章节中,我们还可以创建用户定义的异常。