1、 异常是指存在于运行时的反常行为。典型的异常行为包括失去数据库连接以及遇到意外输入等。
2、 在C++中异常处理包括:
A. throw表达式:异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发了异常。
B. try语句块:异常处理部分使用try语句块处理异常。try语句以关键字try开始,并以一个或多个catch子句结束。try语句块中抛出的异常被某个catch处理。
C. 一套异常类:用于throw表达式和相关的catch子句之间传递异常的具体信息。
throw表达式介绍:
程序的异常检测部分使用throw来抛出异常。表达式:throw和紧随其后的一个表达式(此表达式为抛出的异常类型)例子:
其中runtime_error是一个异常类,定义在stdexcept头文件中。必须初始化异常类的对象,方式是提供给它一个string对象或者一个C风格的字符串。关于异常类后边会介绍。
try语句块:
通用语法:
try{
program-statements //和其他任何块一样,任意的C++的语句。try声明的变量在外部不可以使用
}
catch(exception-declaration) //对象声明,称为异常声明
{
handler-statements
}
catch(exception-declaration)
{
handler-statements
}
·
·
·
例子:
结果如下:
程序解读:程序本来要执行的任务在try语句块中,因为这段代码可能会抛出一个runtime_error 类型的异常,try语句块后边的catch子句负责处理此异常。接下来执行catch块内的语句。输出提示语句要求用户指定程序是否继续,如果为N,跳出while循环,否则,进行下一次迭代。
err.what():定义了err为runtime_error类型,what是runtime_error类的一个成员函数,这些成员函数没有参数,返回的是C风格字符串。runtime_error的what成员函数返回的是初始化的string对象。
说明:
当程序中发生异常,如果函数中没有使用try语句块或者没有找到相匹配的catch子句,那么系统将调用terminate函数(标准库函数),执行该函数导致程序非正常退出。
此文只是异常处理的最基本一点概念介绍,更深入的会在后期慢慢发布。
閱讀更多 編程語言學習 的文章