c++的异常机制
文章类别:
C语言程序设计 | 发表日期:2011-3-7 8:51:59
异常:一般是指打开文件失败,或者申请内存失败等一切不可预料的错误。
#include <iostream>
double Div(double, double);
int main(int argc, char * argv[])
{
try //定义异常
{
std::cout 《 "7.3/2.0 = " 《 Div(7.3, 2.0) 《 std::endl;
std::cout 《 "7.3/2.0 = " 《 Div(7.3, 0.0) 《 std::endl;
std::cout 《 "7.3/2.0 = " 《 Div(7.3, 1.0) 《 std::endl;
}
catch(double) //捕获异常
{
std::cout 《 "eccept of deviding zero.\n";
}
std::cout 《 "That is ok.\n";
}
double Div(double a, double b)
{
if (b == 0.0)
throw b;//抛出异常
return a/b;
}
wg@wg-laptop:/dos/test$ g++ 49.cc
wg@wg-laptop:/dos/test$ ./a.out
7.3/2.0 = 3.65
eccept of deviding zero.
That is ok.
执行try模块里面的语句,到std::cout 《 "7.3/2.0 = " 《 Div(7.3, 0.0) 《 std::endl;这句时,因为b=0,后面std::cout 《 "7.3/2.0 = " 《 Div(7.3, 1.0) 《 std::endl;这句将不再执行,这个时候将抛出异常,而这个异常会被catch捕获。