第6章异常处理陈哲教授南京航空航天大学计算机科学与技术学院
1 第6章 异常处理 陈哲 教授 南京航空航天大学 计算机科学与技术学院
异常6.1异常是在程序执行期间的突发性事件。异常与错误不同,错误可通过编译系统处理1.抛出异常.Example:floatnumer, int div)divide(intif (div == 0)throw"ERROR:dividebyzero.Inelsefloat (numer) / div;return
2 6.1 异常 • 异常是在程序执行期间的突发性事件。 • 异常与错误不同,错误可通过编译系统处理。 • 1. 抛出异常 . Example: float divide(int numer, int div ) { if ( div == 0 ) throw "ERROR: divide by zero. \n"; else return float (numer) / div; }
异常(continued)6.12.处理异常。try!Ⅱ可能出现异常的程序代码catch(exception paramlⅡ处理异常类型1的代码catch(exception param2)/处理异常类型2的代码Ⅱ异常处理结束后,继续执行的代码
3 6.1 异常 (continued) 2. 处理异常。 try { // 可能出现异常的程序代码 } catch( exception param1 ) { // 处理异常类型1的代码 } catch( exception param2 ) { // 处理异常类型2的代码 } // 异常处理结束后,继续执行的代码
// 例6-1#include<iostream>usingnamespace std;floatdivide(int number, int div)if (div==throw"ERROR:divide by zero.In'elsefloat(number) / div;return
// 例6-1 #include <iostream> using namespace std; float divide(int number, int div) { if (div == 0) throw "ERROR: divide by zero.\n"; else return float(number) / div; }
void main()intnuml, num2;思考:如果不处float quotient;理又怎么样?cout<<"Enter two numbers:cin>>numl >>num2;try(quotient = divide(numl, num2);cout<<"The quotient is "<< quotient;fcatch(char*exceptionString)cout<< exceptionString;6-1.cppcout<<"InEndoftheprogram.In
void main( ) { int num1, num2; float quotient; cout << "Enter two numbers: "; cin >> num1 >> num2; try { quotient = divide(num1, num2); cout << "The quotient is " << quotient; }catch (char *exceptionString) { cout << exceptionString; } cout << "\nEnd of the program.\n"; } 思考:如果不处 理又怎么样? 6-1.cpp