以下是範例程式:
#include <iostream>
using namespace std;
namespace MyException {
class Exception {
public:
void mesg() {
cout << "Exception Occurred !!"<<endl;
}
};
}
void sum2(int, int) throw (MyException::Exception);
int main() {
int a=1;
int b=1;
try {
sum2(a, b);
} catch (MyException::Exception & ex) {// start of exception handler
ex.mesg();
}
return 0;
}
void sum2(int a, int b) throw (MyException::Exception) {
if (a==b) {
throw MyException::Exception();
}
cout << a+b<<"\n";
}
解說:
先命名一個namespace為MyException的block,然後在block內定義一個Exception類別,接下來使用"命名空間::類別名稱"來使用此類別
也可以使用兩個namespace的方式來更進一步減少name collision,不過在使用的時候要記得存取每一層namespace的名字,compile才有辦法正確找到要使用的類別.
namespace MyException {
namespace SecondLevel {
class Exception {
public:
void mesg() {
cout << "Exception Occurred !!"<<endl;
}
};
}
}
沒有留言:
張貼留言