132C++异常处理机制 ◆C++异常处理的语法可以表述如下: try 受保护语句;(检测和抛掷 throw异常 异常 其他语句; ty模块 catch(异常类型) 异常处理语句; 「扑获和处理 异常 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -16- 13.2 C++异常处理机制 C++异常处理的语法可以表述如下: try { 受保护语句; throw 异常; 其他语句; } catch(异常类型) {异常处理语句; } 检测和抛掷 异常 扑获和处理 异常 try模块
132C++异常处理机制 ◆在C+术语中,异常( Exception,注意结尾没 有s)是作为专用名词出现的。就是将异常检 测程序所抛掷的“带有异常信息的对象”称为 “异常” ◆而将捕获异常的处理程序称为异常处理程序 Exception Handler) 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -17- 13.2 C++异常处理机制 在C++术语中,异常(Exception,注意结尾没 有s)是作为专用名词出现的。就是将异常检 测程序所抛掷的“带有异常信息的对象”称为 “异常”。 而将捕获异常的处理程序称为异常处理程序 (Exception Handler)
132C++异常处理机制 ◆在try复合语句中,可以调用其他函数,在所 调用的函数中检测和抛掷异常,而不是在try 复合语句中直接抛掷异常。这个所调用的函 数,仍然是属于这个try模块的,所以这个模 块中的 catch部分,仍然可以捕获它所抛掷的 异常并进行处理。 2005-4-27 北京邮电大学电信工程学院计算机技术中心 18
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -18- 13.2 C++异常处理机制 在try复合语句中,可以调用其他函数,在所 调用的函数中检测和抛掷异常,而不是在try 复合语句中直接抛掷异常。这个所调用的函 数,仍然是属于这个try模块的,所以这个模 块中的catch部分,仍然可以捕获它所抛掷的 异常并进行处理
例13.2用C艹+的异常处理机制,重新处理例13.1。 /例13.2用C++的异常处理机制,处理除法溢出 include iostream. h) #include <stdlib. h> double divide(double a, double b) if (b ==0) throw"输入错误:除数不可以等于0!"; return a 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -19- 例13.2 用C++的异常处理机制,重新处理例13.1。 //例13.2用C++的异常处理机制,处理除法溢出 #include <iostream.h> #include <stdlib.h> double divide(double a, double b) { if (b == 0) { throw "输入错误:除数不可以等于0 !"; } return a/b; }