2008-11-07 8 views
46

Scheint, es könnte nützlich sein, dass die Assert eine Meldung anzeigt, wenn eine Assertion fehlschlägt.Können Sie mit der assert-Anweisung von java eine Nachricht angeben?

Wird derzeit eine AssertionError ausgelöst, können Sie eine benutzerdefinierte Nachricht dafür angeben?

Können Sie einen Beispielmechanismus dafür zeigen (abgesehen davon, dass Sie einen eigenen Ausnahmetyp erstellen und ihn werfen)?

Antwort

106

Sie können sicher:

assert x > 0 : "x must be greater than zero, but x = " + x; 

Siehe Programming with Assertions für weitere Informationen.

10

Es ist absolut tut:

assert importantVar != null : "The important var was null!"; 

Dies wird in der Ausnahme „Wichtig var null war“, das ausgelöst wird.

6

Wenn Sie

assert Expression1 : Expression2 ; 

Expression2 als Detail Nachricht für die AssertionError verwendet wird.

+0

Hinzufügen von AssertionError, wenn Ausdruck1 falsch ist. –

14
assert (condition) : "some message"; 

Ich würde empfehlen, die bedingte in Klammern setzen

assert (y > x): "y is too small. y = " + y; 

Stellen Sie sich vor, wenn Sie über Code wie es dazu kam ...

assert isTrue() ? true : false : "some message"; 

Vergessen Sie nicht dies nichts zu tun hat mit behauptet, Sie würden in JUnit schreiben.