web-dev-qa-db-fra.com

L'instruction assert de Java peut-elle vous permettre de spécifier un message?

Il semble qu'il pourrait être utile que l'assertion affiche un message lorsqu'une assertion échoue.

Actuellement, un AssertionError est levé, pouvez-vous spécifier un message personnalisé pour celui-ci?

Pouvez-vous montrer un exemple de mécanisme pour ce faire (autre que la création de votre propre type d'exception et son lancement)?

59
Allain Lalonde

Vous pouvez certainement:

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

Voir Programmation avec assertions pour plus d'informations.

131
Greg Hewgill
assert (condition) : "some message";

Je recommanderais de mettre le conditionnel entre crochets

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

Imaginez si vous rencontriez du code comme celui-ci ...

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

N'oubliez pas que cela n'a rien à voir avec les assertions que vous écririez dans JUnit.

17
matt burns

Cela fait absolument:

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

Cela ajoutera "La variable importante était nulle" à l'exception levée.

11
Jason Coco

Si tu utilises

assert Expression1 : Expression2 ;

Expression2 est utilisée comme message de détail pour AssertionError.

6
Bill the Lizard