您的位置:首页 > 编程语言 > C语言/C++

C/C++学习----第六章 异常处理

2006-10-27 10:42 471 查看

第六章 异常处理

确定程序出错时,执行的代码,称之为异常处理程序。三个关键词:try, throw 和catch。程序中的异常都有一个唯一的名字,可以通过创建异常类来定义一个异常。在程序发生异常时,许多情况下需要指定关于该异常的附加信息:一种解决方案是向以常类中加入成员变量,以及把参数赋予成员的构造函数,当程序捕获到这个异常时,通过检查它的成员变量,以确定有关该异常起因的更多信息。

class myexcept{

public:

int value;

myexcept(int i){

value =i;

}

}; //定义异常类

function(){

throw myexcept(5);

}

void main()

{

try{

function();

}

catch (out_of_memory & e)

{

cout<<”exception value is ”<<e.value;//异常处理过程

}

}

在一个catch中捕获多处异常:

enum fileexception {open, read, write, close};

void func()

{

throw fileexception(open);

}

void main()

{

try {

func();

}

catch(fileexception value)

{

switch(value)

{

case open :

cout<<"open error"<<endl; break;

case read:

cout<<" read error"<<endl; break;

case write:

cout<<" write error"<<endl; break;

case close:

cout<<" close error"<<endl; break;

default: break;

}

exit(1);

}

}

标准异常exception类结构图:

exception

bad_alloc

bab_cast

bab_typeid

logic_error

ios::base_failure

runtime_error

bab_exception

domain_error

invalid_argument

length_error

out_of_range

range_error

overfloe_error

underflow_error

当new 失败时,抛出bad_alloc异常;当程序非预期的异常时,抛出bab_exception异常;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: