(WWVLVWDH[HPSHOPHG KDQWHULQJDYH[FHSWLRQHOOD KlQGHOVHUGHO (WWVLVWDH[HPSHOPHG KDQWHULQJDYH[FHSWLRQHOOD KlQGHOVHUGHO Execpt - 1 //** filen fx.h************************************* #ifndef _fx_ #define _fx_ #include <stdlib.h> Execpt - 2 //** filen funk.h************************************* #ifndef _funk_ #define _funk_ #include "fx.h" int fa(int i); int funk(int x); int fb(int i); #endif #endif //** filen fx.cc************************************ #include "fx.h" //** filen fx.cc************************************ #include "funk.h" int fa(int i) { srand(i); return rand()%2; } int fb(int i) { int tal = rand()%3; int funk(int x) { int a = fa(x); int b = fb(x); return a/b; } if (tal == 0) throw "Division med noll! "; if (tal == 2) throw tal; return tal; } 1 (WWVLVWDH[HPSHOPHG KDQWHULQJDYH[FHSWLRQHOOD KlQGHOVHUGHO //** filen funk.h************************************* #include <iostream.h> #include "funk.h" #include <stdexcept> // // // // // (WWVLVWDH[HPSHOPHG KDQWHULQJDYH[FHSWLRQHOOD KlQGHOVHUGHO Execpt - 3 //** Fortsättning av filen test.cc ********************* catch(overflow_error e1) { cout <<e1.what() << " - overflow_error -" << endl; } På grund av att vi använder objekten e1 och e2 av typerna "overflow_error" och ”exception” i två av de nedanstående "catch-blocken” och standardbiblioteket ”stdexception” inte är inkluderad i någon annan fil så måste det inkluderas nu. catch(exception &e2) { cout << e2.what() << " - exception -" << endl; } using namespace std; catch(int talet) { cout<<"Du har försökt att dividera med "<<talet << endl; } int main() { int i, r; catch(char *textString) { cout << textString << " - textString -" << endl; } cout << "Tal: "; while (cin >> i) { try { r = funk(i); cout << "Resultatet blev " << r << endl; } catch(overflow_error e1) { cout << e1.what() << " -- overflow_error --" << endl; } Execpt - 4 } catch(...) { Exempel på utskrift cout << " - ... -" << endl; Tal: 1 Resultatet blev 0 } Tal: 2 Du har försökt att dividera med 2 cout << "Tal: "; Tal: 3 } //Avslutar av while-blocket Division med noll! - textString Tal: 4 Resultatet blev 1 return 0; Tal: q i 2