Chcemy wydrukować wiadomość po niepowodzeniu assert()
. Obecnie w Dart, assert przyjmuje tylko wartość boolowską. Chcemy dać programistom wyraźne powody i instrukcje dotyczące tego, co należy zrobić, gdy twierdzenie nie powiedzie się.Jak wydrukować wiadomość, gdy potwierdzenie nie powiedzie się w Dart?
5
A
Odpowiedz
4
Od Dart 1.22, assert()
trwa opcjonalną wiadomość.
assert(configFile != null, "Tool config missing.");
Jeśli twierdzenie nie powiedzie, będzie produkować coś jak następuje:
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)
Zauważ, że komunikat o błędzie zawiera rzeczywiste twierdzenie (configFile != null
).
4
Jest kwestią otwartą z obejścia https://github.com/dart-lang/sdk/issues/6190#issuecomment-119103626
assert(() => test || throw "message");
próbowałem tego, ale ten sposób nie działa. Nieco zmodyfikowana wersja pracy
var test = false;
assert(test ? true : throw "message");
Zobacz także
Powiązane problemy
- 1. Jak wydrukować więcej, gdy asercja się nie powiedzie?
- 2. Jak wydrukować wiadomość w obchodzeniu się z podejściem błędu, złapać
- 3. Jak mogę wydrukować wiadomość w Makefile?
- 4. Gdy uwierzytelnianie ServiceStack nie powiedzie się, nie przekierowuj?
- 5. Wykonaj pewną akcję, gdy test Spocka nie powiedzie się.
- 6. Co zrobić, gdy poprawka do importu Mercurial nie powiedzie się?
- 7. Jak wydrukować zwróconą wiadomość z HttpResponse?
- 8. WCF basicHttpBinding: Cofnij, gdy odpowiedź na klienta się nie powiedzie
- 9. Jak uruchomić pojedyncze wdrożenie, gdy kompilacje Travis się powiedzie?
- 10. clr.AddReferenceToFile() nie powiedzie się w IronPython 2.7
- 11. Jak można zablokować potwierdzenie odczytu?
- 12. Aktualizacja MongoDB: jak sprawdzić, czy aktualizacja się powiedzie lub się nie powiedzie?
- 13. Co stanie się, gdy funkcja rollback() nie powiedzie się dla transakcji w MySQL?
- 14. Jak usunąć otoczenie ??? gdy wiadomość nie zostanie znaleziona w pakiecie
- 15. Jak zdobyć potwierdzenie od Kafki
- 16. Jak mogę przekierować do określonej strony, gdy połączenie z bazą danych nie powiedzie się w Yii?
- 17. Jak mogę zmienić komunikat „Hasło nie zgadza się potwierdzenie”
- 18. kompozytor instalacja nie powiedzie się, gdy nie można zobaczyć w bazie mysql
- 19. Jak ustawić wiadomość, gdy otrzymuję wyjątek
- 20. Test mokki nie powiedzie się z AssertionError
- 21. Convert.ToBoolean nie powiedzie się z „0” wartości
- 22. InetAddress.getByName nie powiedzie się za serwerem proxy
- 23. Wnioskowanie typu z orurowaniem lub kompozycją nie udaje się, gdy normalne wywołanie funkcji się powiedzie
- 24. Czy document.createElement ("") nigdy się nie powiedzie?
- 25. Instalacja Xamarin na Androidzie nie powiedzie się
- 26. dir_util.copy_tree nie powiedzie się po shutil.rmtree
- 27. Program pakujący Capistrano: instalacja nie powiedzie się
- 28. Aktualizacja pubu Dart nie powiodła się
- 29. Wymuś ReactJS, aby rzucić prawdziwe błędy, gdy sprawdzanie poprawności propTypes nie powiedzie się?
- 30. CasperJs + jenkins: gdy test się nie powiedzie, jak odzyskać wszystkie informacje z tego testu