Frage

Ich möchte in der Lage sein, um wirklich zu gehen: (in C ++)

assert( num > 0, "The number must be greater than zero!");

In C # XNA, haben sie eine Methode, die dies tut genau das:

Debug.Assert( num > 0, "The number must be greater than zero!");

Gibt es eine Möglichkeit, dies zu tun, so dass die Laufzeit mir einen Sinn vollen Fehler gibt nicht nur „eine Behauptung ist fehlgeschlagen“ Fehler?

War es hilfreich?

Lösung

Sie können damit in den meisten jede Behauptung:

assert(("The number must be greater than zero!",  num > 0));

Andere Tipps

Die Laufzeit in der Regel zeigt den Ausdruck, der ausgefallen ist, so dass Sie etwas tun können:

assert(num > 0 && "The number must be greater than zero!");

, die die Logik nicht beeinflussen, aber die Behauptung Fehlermeldung wird eine beschreibende Zeichenfolge enthalten.

Darüber hinaus funktioniert das ohne den STL oder Boost-benötigen.

Verwenden assert (num> 0 && "Die Zahl muss größer als Null!");

BOOST können Sie in ihre assert verwenden, wie beschrieben in http: //www.boost.org/doc/libs/1_50_0/libs/utility/assert.html :

#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");

würde genau das tun, wie gewünscht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top