Czytam wlasnie o obsludze wyjatkow i nastrafilem na taki kod:
template<class T, int sz = 1> class PWrap {
T* ptr;
public:
class RangeError {}; // Exception class
PWrap() {
ptr = new T[sz];
cout << "PWrap konstruktor" << endl;
}
~PWrap() {
delete[] ptr;
cout << "PWrap destruktor" << endl;
}
T& operator[](int i) throw(RangeError) {
if(i >= 0 && i < sz) return ptr[i];
throw RangeError();
}
};
chodzi mi o przeciazony operator []. Czy moglby mi ktos wyjasnic co robi throw(RangeError) przed cialem funkcji? Bez tego program mi sie skompilowal i zadzialal tak jak z throw.