(In SVN) Class Exception now offers a history list of message strings. These messages should describe what lead to the exception. The Exceptions message itself is NOT included in the history. History access: /** Iterator pointing to the most recent message. */ HistoryIterator historyBegin() const { return _history.begin(); } /** Iterator pointing behind the last message. */ HistoryIterator historyEnd() const { return _history.end(); } /** Whether the history list is empty. */ bool historyEmpty() const { return _history.empty(); } /** The size of the history list. */ HistorySize historySize() const { return _history.size(); } History maintainance: /** Store an other Exception as history. */ void remember( const Exception & old_r ); /** Add some message text to the history. */ void addHistory( const std::string & msg_r ); Example: Rethrow, remembering an old exception: try { .... } catch( const Exception & olderr_r ) { ZYPP_CAUGHT( olderr_r ) HighLevelException newerr( "Something failed." ); newerr.rember( olderr_r ); ZYPP_THROW( newerr ); } Print exception and history if available: Exception error; dumpRange( ERR << error << endl, err.historyBegin(), err.historyEnd(), "", "History:\n - ", "\n - ", "\n", "" ); Todo: Check and adjust existing code to remember previois Exceptions. -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres YaST Development ma@novell.com SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0 +------------------------------------------------------------------+ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org