2013-06-26 7 views
11

Warum gibt es Fehler und Ausnahmen in Dart und weder Fehler oder Ausnahmen?Fehler im Vergleich zu Ausnahme in Dart

Ist der Grund ein historischer oder was?

Ich kann einen Fehler werfen, ich kann eine Ausnahme werfen. Keiner von ihnen wird durch die Analyzer wie in Java (Ausnahme vs. Runtime)

Antwort

20

Von this post, zitiert Bob Nystrom geprüft:

Fehler und ihre Unterklassen sind für programmatische Fehler. Wenn einer dieser auftritt, ist Ihr Code schlecht und Sie sollten Ihren Code beheben.

Nicht-Fehler-Ausnahmeklassen sind für Laufzeitfehler. Manchmal können Sie verhindern, dass sie geworfen werden, aber oft nicht.

Ausgenommen in ein paar besonderen Umständen sollte Idiomatic Dart Fehler werfen, aber nie fangen sie. Sie existiert speziell, um nicht gefangen zu werden, so dass sie die App herunterfahren und den Programmierer auf den Standort des Fehlers aufmerksam machen.

Mit anderen Worten, Sie sollten Ausnahmen erwarten (und darauf achten) (es ist beabsichtigt, dass Sie sie behandeln sollten). Wenn Sie einen Fehler erhalten, müssen Sie überprüfen, wie Sie die API verwenden, die den Fehler verursacht - Sie verwenden ihn wahrscheinlich falsch.

Wenn Sie eine API schreiben, sollten Sie dasselbe Muster verwenden. Bei Fehlern handelt es sich um Nachrichten an nachgeschaltete Entwickler, die sich mit der Verwendung Ihrer API befassen.

+2

Thx Chris für die Klarstellung! Ich denke, das fehlt in der Dokumentation. Es gibt bereits ein Problem dafür: https://code.google.com/p/dart/issues/detail?id=9377 –

Verwandte Themen