- #include <cmath> // for sqrt() function 
- #include <iostream> 
- using namespace std; 
-   
- // A modular square root function 
- double MySqrt(double dX) 
- { 
-     // If the user entered a negative number, this is an error condition 
-     if (dX < 0.0) 
-         throw "Can not take sqrt of negative number"; // throw exception of type char* 
-   
-     return sqrt(dX); 
- } 
-   
- int main() 
- { 
-     cout << "Enter a number: "; 
-     double dX; 
-     cin >> dX; 
-   
-     try // Look for exceptions that occur within try block and route to attached catch block(s) 
-     { 
-         cout << "The sqrt of " << dX << " is " << MySqrt(dX) << endl; 
-     } 
-     catch (char* strException) // catch exceptions of type char* 
-     { 
-         cerr << "Error: " << strException << endl; 
-     } 
-     catch (...){ 
-     	cerr << "still got it :)" <<endl; 
-     } 
- } 
				I2luY2x1ZGUgPGNtYXRoPiAvLyBmb3Igc3FydCgpIGZ1bmN0aW9uCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEEgbW9kdWxhciBzcXVhcmUgcm9vdCBmdW5jdGlvbgpkb3VibGUgTXlTcXJ0KGRvdWJsZSBkWCkKewogICAgLy8gSWYgdGhlIHVzZXIgZW50ZXJlZCBhIG5lZ2F0aXZlIG51bWJlciwgdGhpcyBpcyBhbiBlcnJvciBjb25kaXRpb24KICAgIGlmIChkWCA8IDAuMCkKICAgICAgICB0aHJvdyAiQ2FuIG5vdCB0YWtlIHNxcnQgb2YgbmVnYXRpdmUgbnVtYmVyIjsgLy8gdGhyb3cgZXhjZXB0aW9uIG9mIHR5cGUgY2hhcioKCiAgICByZXR1cm4gc3FydChkWCk7Cn0KCmludCBtYWluKCkKewogICAgY291dCA8PCAiRW50ZXIgYSBudW1iZXI6ICI7CiAgICBkb3VibGUgZFg7CiAgICBjaW4gPj4gZFg7CgogICAgdHJ5IC8vIExvb2sgZm9yIGV4Y2VwdGlvbnMgdGhhdCBvY2N1ciB3aXRoaW4gdHJ5IGJsb2NrIGFuZCByb3V0ZSB0byBhdHRhY2hlZCBjYXRjaCBibG9jayhzKQogICAgewogICAgICAgIGNvdXQgPDwgIlRoZSBzcXJ0IG9mICIgPDwgZFggPDwgIiBpcyAiIDw8IE15U3FydChkWCkgPDwgZW5kbDsKICAgIH0KICAgIGNhdGNoIChjaGFyKiBzdHJFeGNlcHRpb24pIC8vIGNhdGNoIGV4Y2VwdGlvbnMgb2YgdHlwZSBjaGFyKgogICAgewogICAgICAgIGNlcnIgPDwgIkVycm9yOiAiIDw8IHN0ckV4Y2VwdGlvbiA8PCBlbmRsOwogICAgfQogICAgY2F0Y2ggKC4uLil7CiAgICAJY2VyciA8PCAic3RpbGwgZ290IGl0IDopIiA8PGVuZGw7CiAgICB9Cn0=