diff options
Diffstat (limited to 'contrib/utility/Documentation/ExH/Example/hello_world.cpp.html')
-rw-r--r-- | contrib/utility/Documentation/ExH/Example/hello_world.cpp.html | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html b/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html deleted file mode 100644 index 3d2497f325e..00000000000 --- a/contrib/utility/Documentation/ExH/Example/hello_world.cpp.html +++ /dev/null @@ -1,152 +0,0 @@ -<html> -<head> -<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter --> -<title> -hello_world.cpp</title> -<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head> -<body> -<pre> -<span class=comment>// file : Example/ExH/HelloWorld/hello_world.cpp -// author : Boris Kolpackov <boris@kolpackov.net> -// copyright : Copyright (c) 2002-2003 Boris Kolpackov -// license : http://kolpackov.net/license.html - -</span><span class=preprocessor>#include <cstdlib> // for std::abort () - -</span><span class=preprocessor>#include <string> -</span><span class=preprocessor>#include <iostream> - -</span><span class=preprocessor>#include "Utility/ExH/System/Exception.hpp" -</span><span class=preprocessor>#include "Utility/ExH/Logic/Exception.hpp" - -</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cerr</span><span class=special>; -</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>cout</span><span class=special>; -</span><span class=keyword>using </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>endl</span><span class=special>; - -</span><span class=keyword>using </span><span class=keyword>namespace </span><span class=identifier>Utility</span><span class=special>; - -</span><span class=keyword>class </span><span class=identifier>Application -</span><span class=special>{ -</span><span class=keyword>public</span><span class=special>: - </span><span class=keyword>class </span><span class=identifier>Exception </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=special>{}; - - </span><span class=comment>// Hint: you may want to try again... - </span><span class=keyword>class </span><span class=identifier>FeelingDizzy </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Exception </span><span class=special>{}; - - </span><span class=keyword>class </span><span class=identifier>InvalidArg </span><span class=special>: </span><span class=keyword>public </span><span class=identifier>Exception </span><span class=special>{}; - -</span><span class=keyword>public</span><span class=special>: - </span><span class=identifier>Application </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>) - </span><span class=special>: </span><span class=comment>// The std::string c-tor may throw any kind of exceptions besides - // quite possible std::bad_alloc. - </span><span class=identifier>greeting_ </span><span class=special>(</span><span class=string>"Hello, world!"</span><span class=special>) - </span><span class=special>{ - </span><span class=special>} - - </span><span class=identifier>Application </span><span class=special>(</span><span class=keyword>char </span><span class=keyword>const </span><span class=special>* </span><span class=identifier>greeting</span><span class=special>) </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>InvalidArg</span><span class=special>, - </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>) - </span><span class=special>: </span><span class=identifier>greeting_ </span><span class=special>(</span><span class=identifier>greeting </span><span class=special>== </span><span class=number>0 </span><span class=special>? </span><span class=string>"" </span><span class=special>: </span><span class=identifier>greeting</span><span class=special>) - </span><span class=special>{ - </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>greeting </span><span class=special>== </span><span class=number>0</span><span class=special>) </span><span class=keyword>throw </span><span class=identifier>InvalidArg </span><span class=special>(); - </span><span class=special>} - -</span><span class=keyword>public</span><span class=special>: - - </span><span class=keyword>void - </span><span class=identifier>run </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>FeelingDizzy</span><span class=special>, </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>) - </span><span class=special>{ - </span><span class=keyword>static </span><span class=keyword>unsigned </span><span class=keyword>int </span><span class=identifier>dizzy_count </span><span class=special>(</span><span class=number>0</span><span class=special>); - - </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>dizzy_count</span><span class=special>++ </span><span class=special>< </span><span class=number>5</span><span class=special>) </span><span class=keyword>throw </span><span class=identifier>FeelingDizzy </span><span class=special>(); - - </span><span class=comment>// The next line can throw full bucket of exceptions - // not to mention ios_base::failure. - </span><span class=identifier>cout </span><span class=special><< </span><span class=identifier>greeting_</span><span class=special>.</span><span class=identifier>c_str </span><span class=special>() </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=special>} - -</span><span class=keyword>private</span><span class=special>: - - </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>string </span><span class=identifier>greeting_</span><span class=special>; -</span><span class=special>}; - - - -</span><span class=keyword>int -</span><span class=identifier>main </span><span class=special>() -</span><span class=special>{ - </span><span class=comment>// This is a catch-all layer that should be in use only - // if we are really in trouble. - </span><span class=keyword>try - </span><span class=special>{ - </span><span class=comment>// This is a catch-system layer. Here we will catch exceptions like - // bad_alloc, etc. If we get here it means that nobody wanted/managed - // to recover from this kind of errors. - </span><span class=keyword>try - </span><span class=special>{ - </span><span class=comment>// This is a catch-logic layer. If we get here it usually - // indicates an application logic error. - </span><span class=keyword>try - </span><span class=special>{ - - </span><span class=comment>// Ok, here we go about our application logic. - </span><span class=keyword>try - </span><span class=special>{ - </span><span class=keyword>for </span><span class=special>(</span><span class=keyword>int </span><span class=identifier>i </span><span class=special>= </span><span class=number>0</span><span class=special>; </span><span class=identifier>i </span><span class=special>< </span><span class=number>10</span><span class=special>; </span><span class=identifier>i</span><span class=special>++) - </span><span class=special>{ - </span><span class=keyword>try - </span><span class=special>{ - </span><span class=identifier>Application </span><span class=identifier>app </span><span class=special>(</span><span class=string>"Hi dude!"</span><span class=special>); - </span><span class=identifier>app</span><span class=special>.</span><span class=identifier>run </span><span class=special>(); - </span><span class=keyword>break</span><span class=special>; - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Application</span><span class=special>::</span><span class=identifier>FeelingDizzy </span><span class=keyword>const</span><span class=special>& </span><span class=special>) - </span><span class=special>{ - </span><span class=keyword>if </span><span class=special>(</span><span class=identifier>i </span><span class=special>== </span><span class=number>9</span><span class=special>) - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Given up!" </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>; - </span><span class=special>} - </span><span class=keyword>else - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Application is feeling dizzy. Trying again..." - </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=special>} - </span><span class=special>} - </span><span class=special>} - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Application</span><span class=special>::</span><span class=identifier>InvalidArg </span><span class=keyword>const</span><span class=special>& </span><span class=special>) - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Cought Application::InvalidArg : ...hmm... strange!" - </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>; - </span><span class=special>} - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>Logic</span><span class=special>::</span><span class=identifier>Exception </span><span class=keyword>const</span><span class=special>& </span><span class=identifier>e</span><span class=special>) - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Caught Logic::Exception : " </span><span class=special><< </span><span class=identifier>e</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>; - </span><span class=special>} - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(</span><span class=keyword>const </span><span class=identifier>ExH</span><span class=special>::</span><span class=identifier>System</span><span class=special>::</span><span class=identifier>Exception</span><span class=special>& </span><span class=identifier>e</span><span class=special>) - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Caught System::Exception : " </span><span class=special><< </span><span class=identifier>e</span><span class=special>.</span><span class=identifier>what </span><span class=special>() </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>; - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(...) - </span><span class=special>{ - </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Caught unknown exception using catch-all handler. " </span><span class=special><< </span><span class=identifier>endl</span><span class=special>; - </span><span class=keyword>return </span><span class=special>-</span><span class=number>1</span><span class=special>; - </span><span class=special>} - </span><span class=special>} - </span><span class=keyword>catch </span><span class=special>(...) - </span><span class=special>{ - </span><span class=comment>// We get here in cases of some hard failure. For example when handling - // exception, operator << throws another exception. Usually application - // cannot handle such failures itself so we just propagate it futher. - </span><span class=identifier>std</span><span class=special>::</span><span class=identifier>abort </span><span class=special>(); - </span><span class=special>} -</span><span class=special>} -</span></pre> -</body> -</html> -<!-- $Id$ --> |