Vorremmo stampare un messaggio quando un assert()
fallisce. Attualmente in Dart, un asser prende solo un booleano. Vorremmo fornire allo sviluppatore spiegazioni e istruzioni esplicite su cosa fare quando l'asserimento fallisce.Come stampare un messaggio quando un assert fallisce, in Dart?
5
A
risposta
4
A partire dal Dart 1.22, assert()
prende un messaggio opzionale.
assert(configFile != null, "Tool config missing.");
Se l'asserzione fallisce, produrrà qualcosa di simile al seguente:
Unhandled exception:
'file:///.../main.dart': Failed assertion: line 9 pos 10:
'configFile != null': Tool config missing.
#0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:33)
#1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:29)
#2 main (file:///.../main.dart:9:10)
Si noti che il messaggio di errore include l'affermazione reale (configFile != null
).
4
V'è un problema aperto con una soluzione https://github.com/dart-lang/sdk/issues/6190#issuecomment-119103626
assert(() => test || throw "message");
Ho provato a farlo, ma in questo modo non funziona. Un leggermente modificata versione funzionante
var test = false;
assert(test ? true : throw "message");
Vedere anche