| Line |  | 
|---|
| 1 | // This example illustrates constructors and | 
|---|
| 2 | // destructors in exception handling. | 
|---|
| 3 |  | 
|---|
| 4 | #include <string.h>            // needed for strcpy | 
|---|
| 5 | #include <iostream.h> | 
|---|
| 6 | class Matherr { public: char errname[30]; }; | 
|---|
| 7 | class DivideByZero : public Matherr | 
|---|
| 8 | { | 
|---|
| 9 | public: | 
|---|
| 10 | DivideByZero() {strcpy (errname, "Division by zero");} | 
|---|
| 11 | }; | 
|---|
| 12 | double divide(double a, double b) | 
|---|
| 13 | { | 
|---|
| 14 | if (b == 0) throw DivideByZero(); | 
|---|
| 15 | return a/b; | 
|---|
| 16 | } | 
|---|
| 17 |  | 
|---|
| 18 | void main() | 
|---|
| 19 | { | 
|---|
| 20 | double a=7,b=0; | 
|---|
| 21 | try {divide (a,b);} | 
|---|
| 22 | catch (Matherr xx) | 
|---|
| 23 | { | 
|---|
| 24 | cout << xx.errname << endl; | 
|---|
| 25 | } | 
|---|
| 26 | } | 
|---|
| 27 |  | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.