diff options
Diffstat (limited to 'ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html')
-rw-r--r-- | ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html b/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html new file mode 100644 index 00000000000..d29794d4c2c --- /dev/null +++ b/ACE/contrib/utility/Documentation/ExH/Example/logic_to_system.cpp.html @@ -0,0 +1,69 @@ +<html> +<head> +<!-- Generated by the Spirit (http://spirit.sf.net) C++ to HTML Converter --> +<title> +logic_to_system.cpp</title> +<link rel="stylesheet" href="../../../Documentation/Style/CXX.css" type="text/css"></head> +<body> +<pre> +<span class=comment>// file : Example/ExH/LogicToSystem/logic_to_system.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 "Utility/ExH/System/Exception.hpp" +</span><span class=preprocessor>#include "Utility/ExH/Logic/Exception.hpp" + +</span><span class=preprocessor>#include <iostream> + +</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>endl</span><span class=special>; + + +</span><span class=keyword>struct </span><span class=identifier>SubsystemA +</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>Utility</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=special>{}; + + </span><span class=keyword>void + </span><span class=identifier>foo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Exception</span><span class=special>) + </span><span class=special>{ + </span><span class=keyword>throw </span><span class=identifier>Exception </span><span class=special>(); + </span><span class=special>} +</span><span class=special>}; + + +</span><span class=keyword>struct </span><span class=identifier>SubsystemB +</span><span class=special>{ + </span><span class=keyword>void + </span><span class=identifier>foo </span><span class=special>() </span><span class=keyword>throw </span><span class=special>(</span><span class=identifier>Utility</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>SubsystemA </span><span class=identifier>a</span><span class=special>; + </span><span class=identifier>a</span><span class=special>.</span><span class=identifier>foo </span><span class=special>(); + + </span><span class=comment>// Here SubsystemB is using SunsystemA but cannot (forgot, doesnt't + // want to, doesn't know how to, etc - pick your favorite) handle + // exception thrown by SubsystemA. As a result exception is + // 'converted' to System::Exception. + </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=keyword>try + </span><span class=special>{ + </span><span class=identifier>SubsystemB </span><span class=identifier>b</span><span class=special>; + </span><span class=identifier>b</span><span class=special>.</span><span class=identifier>foo </span><span class=special>(); + </span><span class=special>} + </span><span class=keyword>catch </span><span class=special>(</span><span class=identifier>Utility</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=keyword>const</span><span class=special>& </span><span class=identifier>ex</span><span class=special>) + </span><span class=special>{ + </span><span class=identifier>cerr </span><span class=special><< </span><span class=string>"Caught Utility::ExH::System::Exception: " + </span><span class=special><< </span><span class=identifier>ex</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=special>} +</span><span class=special>} +</span></pre> +</body> +</html> +<!-- $Id$ --> |