基本概念
(1)异常捕获
try
{
可能引发的异常语句;(包含函数的调用)
}
catch (异常类型1 ex)
{
异常处理的语句;
}
catch (异常类型2 ex)
{
异常处理的语句;
}
*******
catch(***)
{
异常处理的语句;
}
(2) 异常的抛出
根据异常变量的数值来区分不同的异常
(2) 抛出异常对象,比如FileException
根据异常变量的数据类型来区分不同的异常
(3) 从标准异常中继承下来
子类的对象 >= 基类对象
C++标准类名: exception #include <exception> 包含其头文件
vi /usr/include/c++/4.6/exception
virtual const char* what() const throw(); //虚函数可以被覆盖;返回值类型const char*;what()const 常函数;
//throw不抛出任何异常。
表示返回一个描述异常原因的C风格字符串。
在 catch 中使用 exception 类型的引用去接收,即可以接收基类的对象,也可以接收子类的对象,使用简单。
(4) 继续抛出异常
a. 发生异常之后不进行 catch,直接继续向上抛。
b. 只能处理一部分,处理完毕之后,继续向上抛。
try
{
...
}
catch(异常类型 ex)
{
...
throw ex;//向上抛
}
(5)异常的说明 --------("优雅的死去")
返回值类型 函数名(形参表) throw(异常类型1,类型异常2,....)
{
}
表示告诉编译器在函数执行的过程中,可能会抛出上述异常。
如果抛出的异常,函数调用过程中没有抛出已说明的异常throw()类的,将会被系统处理。
(1)异常捕获
try
{
可能引发的异常语句;(包含函数的调用)
}
catch (异常类型1 ex)
{
异常处理的语句;
}
catch (异常类型2 ex)
{
异常处理的语句;
}
*******
catch(***)
{
异常处理的语句;
}
(2) 异常的抛出
throw 异常的对象;//可先定义
异常的使用方法
(1) 抛出简单数据类型,比如 int ...根据异常变量的数值来区分不同的异常
(2) 抛出异常对象,比如FileException
根据异常变量的数据类型来区分不同的异常
(3) 从标准异常中继承下来
子类的对象 >= 基类对象
C++标准类名: exception #include <exception> 包含其头文件
vi /usr/include/c++/4.6/exception
virtual const char* what() const throw(); //虚函数可以被覆盖;返回值类型const char*;what()const 常函数;
//throw不抛出任何异常。
表示返回一个描述异常原因的C风格字符串。
在 catch 中使用 exception 类型的引用去接收,即可以接收基类的对象,也可以接收子类的对象,使用简单。
(4) 继续抛出异常
a. 发生异常之后不进行 catch,直接继续向上抛。
b. 只能处理一部分,处理完毕之后,继续向上抛。
try
{
...
}
catch(异常类型 ex)
{
...
throw ex;//向上抛
}
(5)异常的说明 --------("优雅的死去")
返回值类型 函数名(形参表) throw(异常类型1,类型异常2,....)
{
}
表示告诉编译器在函数执行的过程中,可能会抛出上述异常。
如果抛出的异常,函数调用过程中没有抛出已说明的异常throw()类的,将会被系统处理。