#include <iostream>
using namespace std;
void sum(int, int);
int main() {
int a=1;
int b=1;
try {
sum(a, b);
} catch (const char * s) {// start of exception handler
cout << s <<endl;
}
return 0;
}
void sum(int a, int b) {
if (a==b) {
throw "This Combination is unacceptable!!";
}
cout << a+b<<"\n";
}
紅色字的部分是表示當function sum(int,int)在try block拋出string的錯誤訊息時,catch block(區塊)要把此錯誤訊息印出來.
Exception class(例外類別)
前一個範例是拋出字串,這一個範例是拋出例外類別.使用這一個方法的好處是我們可以為exception分類出不同類別,以方便辨識.另外一方面,也提升了重用性(re-usability).
#include <iostream>
using namespace std;
class Exception {
public:
void mesg() {
cout << "Exception Occurred !!"<<endl;
}
};
void sum1(int, int) throw (Exception);
int main() {
int a=1;
int b=1;
try {
sum1(a, b);
} catch (Exception & ex) {// start of exception handler
ex.mesg();
}
return 0;
}
void sum1(int a, int b) throw (Exception) {
if (a==b) {
throw Exception();
}
cout << a+b<<"\n";
}
解說:
第一部分是宣告一個Exception class(例外類別)
第二部分部分只是把拋出字串,改為拋出此例外類別.
第三部分部分是函式的實做.要記得在定義define(定義)以及declaration(宣告)的時候加上throw關鍵字指定要丟出何種類外類別.
沒有留言:
張貼留言