002
05.03.2019, 18:58 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Hi,
ja das geht.
Du musst deiner abgeleiteten Exceptionklasse nur einen Streamingoperator spendieren, so in der Art:
C++: |
template< class Streamable > MyException& operator<<( const Streamable& x ) { std::ostringstream o; o << x; m_what += o.str(); return (*this); }
|
wobei m_what der std::string ist, denn man dann bei der überschriebenen what() methode zurückgeben sollte.
Aufruf/Wurf geht dann z.b so:
C++: |
throw MyException("Allgemeiner Text") << " und das wird noch hinzugefügt" << 123 << " Beispiel";
|
Achja, imho wird empfohlen, nicht von den spezialisierten Klassen (runtime_exception, ...) abzuleiten, sondern nur direkt von der basis (std::exception) -- class God : public ChuckNorris { }; Dieser Post wurde am 05.03.2019 um 18:58 Uhr von FloSoft editiert. |