‫Willkommen zurück.
‫In diesem Video erfahren Sie, wie Sie Fehler abfangen und im Fehlerfall etwas tun können, um Ihr Programm nicht
‫zum Absturz zu bringen oder ähnliches.
‫Eine gängige Verwendung von catch und finally together besteht darin, Ressourcen zu beschaffen und zu verwenden und zu versuchen, mit außergewöhnlichen Umständen
‫und einem Catch-Block zu umgehen und die Ressourcen im letzten Block freizugeben.
‫Und das bedeutet, was wir in diesem Video behandeln werden.
‫Um also auf einen Fehler zu stoßen, gehen wir wie folgt vor.
‫Wir verwenden die rechte Zeile der Konsole.
‫Also und um Doppeltippen hier zu sehen, sage ich bitte geben Sie eine Nummer ein und wir werden unseren Benutzer nur auffordern, eine Nummer
‫einzugeben.
‫Und dann wollen wir das in der Benutzereingabe speichern, die einfach eine verbale Zeichenfolge ist
‫und alles liest, was der Benutzer eingeben oder sagen muss.
‫Und es sollte am Ende eine Zahl sein.
‫Rechts.
‫Das ist das Ziel, das wir haben.
‫Aber wenn wir die folgende Endbenutzereingabe als Eingabe machen und wir in Dart Pass verwenden, so haben Sie bereits Teile gesehen und
‫wir versuchen, die Benutzereingaben zu parsen, die hier vom Benutzer gegeben wurden.
‫Wir werden versuchen, daraus eine ganze Zahl zu machen, und wenn Sie das jetzt ausführen, geben Sie bitte eine Zahl und während
‫drei ein und unser Programm ist tatsächlich in Ordnung.
‫Fügen wir hier eine Konsole hinzu, die den Schlüssel liest, damit wir noch besser sehen, dass das Programm noch in Ordnung ist.
‫Geben Sie also bitte eine Zahl ein.
‫Ich gebe nur fünf ein und unser Programm läuft und es ist nicht abgestürzt.
‫Alles ist gut.
‫Also lassen Sie es uns jetzt noch einmal ausführen.
‫Aber anstatt ein Nein einzugeben, fügen wir einen Buchstaben hinzu oder schreiben einen Text.
‫Das ist nicht.
‫In eine Ganzzahl überführbar, was wir hier in Zeile 16 tun, in meinem Fall werde ich
‫eingeben und mein Programm stürzt ab und es heißt Ausnahme, unbehandelte Systemformatausnahme, Eingabezeichenfolge hatte kein
‫korrektes Format.
‫Gut.
‫Die vom Benutzer angegebene Zeichenfolge hatte also nicht das richtige Format, um sie an eine Ganzzahl zu übergeben.
‫Und genau darum geht es bei einer formalen Ausnahme.
‫Jetzt können wir damit umgehen, indem wir einen Try-and-Catching-Block erstellen.
‫Nehmen wir an, wir verwenden try.
‫Und hier können Sie sehen, dass es eine Option gibt, um try und catch C zu verwenden, oder ich kann es einfach verwenden,
‫um es mit einem Doppeltippen zu versuchen, und es wird für mich ein try-catch-Exception-Wurf erstellt.
‫Jetzt möchte ich diesen Code ausprobieren und wenn es nicht funktioniert, möchte ich nicht, dass mein Programm
‫abstürzt.
‫Und darum geht es bei diesem ganzen Tri-Ding.
‫Es wird also versucht, jeden Fehlercodefehler im Sinne von Fehlercode während der Laufzeit auszuführen, der sich hier befindet.
‫Und wenn es nicht funktionierte, dann der Haken.
‫Block wird ausgeführt, also wird alles ausgeführt, was sich in diesem Körper oder in den geschweiften Klammern
‫befindet.
‫Also müssen wir jetzt nur noch hier werfen.
‫Also lasst uns den Wurf loswerden, weil er immer noch Yero wirft.
‫Schreiben wir nun etwas in die Konsole, wenn ein Fehler auftritt.
‫Wir sagen also so etwas wie Formatausnahme,
‫bitte geben Sie beim nächsten Mal den richtigen Typ ein.
‫Und das ist etwas, von dem wir wissen, was ein Typ ist.
‫Ein normaler Benutzer würde das nicht wissen.
‫Hier würden Sie also so etwas schreiben, bitte keine Buchstaben eingeben, sondern nur Zahlen oder
‫ähnliches.
‫Schauen wir also mal rein.
‫Lassen Sie uns auch hier einen Fehler erneut in einen Fehler ausführen.
‫Und dann bekommen wir diese Informationen nur von einer Ausnahme.
‫Bitte geben Sie beim nächsten Mal den richtigen Typ ein.
‫Und unser Programm ist nicht abgestürzt, also sind wir nicht auf diese Ausnahme im Sinne unseres Programms oder unseres IEP gestoßen,
‫die uns sagten, hey, da stimmt etwas nicht und Sie sollten mit Ihrem Code gut umgehen.
‫Rechts.
‫So ist die Struktur im Allgemeinen.
‫Sie haben einen Versuch, also probieren Sie hier Code aus, bei dem Fehler auftreten können, der eine Ausnahme haben
‫kann, und dann haben Sie einen catch-Block, der ausgeführt wird, wenn dieser Versuch nicht geklappt hat.
‫Wenn also ein Fehler aufgetreten ist, wird dieser Catch-Block ausgeführt.
‫Was wir hier haben, ist ein Haken mit einer Ausnahme.
‫Eine Ausnahme ist ein sehr allgemeiner Fehler.
‫Es kann sich also um jede Art von Ausnahme handeln.
‫Aber wenn dieser Fehler tatsächlich auftritt, lassen Sie uns diesen Code loswerden. Wir werden sehen, welche Art von Ausnahme wir
‫erstellt haben.
‫Also gebe ich einfach so etwas wie eine beliebige Zeichenfolge ein, die ich eingebe.
‫Und eigentlich passiert nichts, weil wir nicht werfen.
‫Also lasst uns damit aufhören, lasst uns werfen, wie wir vorhin gesehen haben, einfach hochwerfen und wir werden es wieder ausführen.
‫Ich gebe hier nur etwas ein, und es handelt sich um eine Systemformat-Ausnahme.
‫Wir haben also etwas genauere Informationen über die eigentliche Ausnahme.
‫Jetzt wissen wir also, OK, es handelt sich um eine Format-Ausnahme.
‫Daher sollten wir hier eine Ausnahme formatieren anstelle von Ausnahme.
‫Okay, hier gibt es viele Ausnahmen, aber was wir hier verwenden, ist eine Formatausnahme.
‫Wie Sie hier sehen können, gibt es eine Klasse namens system, die eine Ausnahme bildet, und die Ausnahme,
‫die ausgelöst wird, wenn das Format eines Arguments ungültig ist oder wenn eine zusammengesetzte Formatzeichenfolge nicht korrekt formatiert ist.
‫Und genau das haben wir hier.
‫Also lass uns das loswerden und gut damit umgehen.
‫Lassen Sie uns nun auf einen anderen Fehler stoßen.
‫Lassen Sie uns nun eine sehr lange Zahl erstellen, die nicht in eine Zeichenfolge passen kann, da eine Zeichenfolge, wie
‫Sie sich vielleicht erinnern oder sich erinnern, nur einen bestimmten Platzbedarf hat.
‫Nehmen wir an, ich bin mir nicht sicher, wie viele Zahlen dies tun, aber sagen wir, nur diese Anzahl von Zahlen
‫kann in einer Ganzzahl gespeichert werden.
‫Das alles hier wird also nicht funktionieren, weil es ein Überlauf ist.
‫Es sind also zu viele Informationen für eine Zeichenfolge.
‫Also wenn ich das jetzt eingebe.
‫Ich erhalte eine Eingabesystemüberlauf-Ausnahme, also sind wir hier, Systemüberlauf-Empfang.
‫Nun, für 30 warst du auch entweder zu groß oder zu klein, oder?
‫Das ist, was ich gesagt habe.
‫Und jetzt müssen wir auch diese Ausnahme abfangen.
‫Es gibt also zwei Möglichkeiten, wie wir damit umgehen können.
‫Entweder verwenden wir hier eine andere Ausnahme und wir verwenden nur Ausnahme.
‫Wir behandeln also nur alle anderen Ausnahmen, die es allgemein gibt, und sagen einfach, konsultieren Sie
‫die
‫helle Linie, allgemeine Ausnahme.
‫Etwas ist zum Beispiel schief gelaufen, also erstellen wir ein sehr langes Nein, eigentlich noch einmal so und geben wir das
‫ein und wir sehen, dass wir eine allgemeine Ausnahme haben, obwohl dies eine Überlauf-Ausnahme ist.
‫Du kannst also so damit umgehen.
‫Wenn Sie also nicht all die verschiedenen Arten von Ausnahmen kennen, die
‫Sie dort haben, oder Sie nicht alle einzeln abfangen möchten, können Sie dies auf diese Weise tun oder Sie könnten so genau und einfach
‫und bei der richtigen Überlauf-Ausnahme sein.
‫Jetzt wird es also funktionieren und Sie sehen ein System, die Überlauf-Ausnahme.
‫Lassen Sie uns das noch einmal ausführen und geben wir bitte eine Zahl ein und erstellen wir hier eine sehr lange Zahl.
‫Und wir erhalten immer noch die allgemeine Ausnahme, weil wir keine andere Textüberlauf-Ausnahme eingegeben haben.
‫Die Nummer war zu lang oder zu kurz für und in 30 bis.
‫Schauen wir uns also noch einmal um und übersehen, dass die Abschnittsnummer für einen von zweiunddreißig zu lang oder zu kurz war.
‫Gut.
‫So können wir im Allgemeinen Ausnahmen abfangen.
‫Und wenn es andere Ausnahmen gibt, die ausgeführt werden können.
‫Wie Sie sehen, gibt es ein Argument, keine Ausnahme.
‫Schauen wir uns also an, was das bedeutet, wenn wir das überhaupt hinbekommen.
‫Und wir sehen.
‫Formale Ausnahme, bitte geben Sie beim nächsten Mal den richtigen Zeittyp ein. Auch wenn sie in unserem
‫Fall leer ist, erhalten wir diese Null-Ausnahme nicht, da unsere Eingabe, auch wenn wir nichts eingeben, immer noch eine
‫leere Zeichenfolge enthält ist nicht null.
‫Wir stoßen also in diesem Akt nicht auf diese eigentliche Ausnahme.
‫Wie Sie hier sehen, ist es sehr nützlich, wenn Sie versuchen, Code-Intelligenz auszuführen, und Ihnen hier sogar einige Informationen zur
‫Verfügung zu stellen.
‫Sie können sehen, dass es das Argument, nicht die Ausnahme, die formale Ausnahme und die Überlaufausnahme gibt.
‫Wir könnten hier also sogar eine weitere Ausnahme hinzufügen und nennen, dass ein Argument keine Ausnahme oder ein Argument null Ausnahme
‫ist.
‫Und wir sagen so etwas wie Argument null Ausnahme.
‫Der Wert war jetzt leer.
‫Um überhaupt in diesen Bereich zu gelangen, müssten wir also nullable verwenden, was wir noch nicht behandelt haben.
‫Aber das werden wir später tun.
‫Und wenn wir sie haben, können Sie das versuchen.
‫Wenn Sie das Video bereits gesehen haben, können Sie versuchen, auf diesen Fehler zu stoßen.
‫Gut.
‫Jetzt haben Sie also gesehen, wie Sie es verwenden, versuchen und fangen.
‫Und nun gibt es noch eine Sache, die ich euch in diesem Video zeigen möchte, was endlich und endlich
‫so gemacht wird.
‫Sie haben also immer ein Schlüsselwort verwendet, und dann verwenden Sie wieder geschweifte Klammern und innerhalb dieses Codeblocks hier.
‫In diesem Hauptteil geben Sie also den Code ein, der ausgeführt werden soll, wenn try und catch ausgeführt werden.
‫Es spielt also keine Rolle, ob der Fehler ausgeführt wurde oder ob der Fehler nicht funktioniert hat, es ist kein Fehler aufgetreten.
‫Das wird schließlich noch heißen.
‫So heißt das sowieso.
‫Das heißt also.
‫Nun, wir werden in einer Sekunde sehen.
‫Lassen Sie uns also auf einen Fehler stoßen und wir sehen Wellenform und Ausnahmen und dann sehen wir, dass dies sowieso aufgerufen
‫wird und das ist unser letzter Block.
‫Und die Idee hinter dieser finally-Sperre ist es, zum Beispiel, wenn Sie versucht haben, eine Internetverbindung aufzubauen oder wenn Sie
‫versucht haben, in eine Datei zu schreiben, es schließlich zu einem Fehler kommen kann.
‫Nehmen wir also an, die Internetverbindung bricht ab oder Sie haben keinen Zugriff
‫auf eine Datei, in die Sie schreiben möchten, oder andere Ausnahmen, die auftreten können, und Sie möchten die Verbindung oder die Datei so oder so schließen.
‫Sie haben also die Datei geöffnet und versuchen nun, in diese Datei zu schreiben, und nachdem Sie in diese Datei geschrieben haben, versuchen Sie,
‫sie zu blockieren, und vielleicht hat es funktioniert, vielleicht hat es nicht funktioniert.
‫Was Sie aber auf jeden Fall tun möchten, ist, die Datei wieder zu schließen oder zu versuchen, etwas aus dem
‫Internet herunterzuladen.
‫Und ob es funktionierte oder nicht funktionierte, spielt keine Rolle.
‫Anschließend müssen Sie die Verbindung zum Internet trennen.
‫Und das würden Sie im letzten Block tun.
‫Und das ist sehr praktisch und sehr wichtig, wenn Sie mit Eingabe-Ausgabe-Typen arbeiten oder.
‫Ja, aber im Allgemeinen mit Verbindungen zum Internet, Bluetooth oder was auch immer.
‫Wie Sie sehen, gibt es viel über Fangversuche zu wissen, aber die wichtigsten Dinge haben Sie bereits gesehen.
‫Jetzt wissen Sie also, wie Sie try verwenden, Sie wissen, wie Sie catch verwenden und wie Sie Ausnahmen herausfinden.
‫In manchen Fällen ist es nicht so offensichtlich.
‫In einigen Fällen werden Sie also nicht überprüfen, welche Art von Ausnahmen ausgeführt werden können.
‫Wenn Sie jedoch in Ihrem Code auf eine Ausnahme stoßen, wissen Sie, welche Art von Ausnahme die Ursache ist.
‫Nun, die Idee ist, dass Microsoft Visual Studio Ihnen sagt, welche Ausnahme es war.
‫Und dann sollten Sie unbedingt versuchen, diese Ausnahme abzufangen oder einfach einen allgemeinen Ausnahmetyp okeydokey verwenden.
‫Also jetzt als kleine Herausforderung für dich, denn eine kleine Herausforderung muss immer sein,
‫sonst wird dir vielleicht langweilig oder du wirst ein bisschen faul.
‫Es ist wirklich wichtig, dass Sie versuchen, auch den Code einzugeben und ihn selbst zu überprüfen.
‫Also die kleinen Herausforderungen, bitte mach weiter und dividiere durch Null.
‫Das ist also einfach.
‫Versuchen Sie einfach, durch Null zu dividieren und verwenden Sie dafür zwei Variablen.
‫Okay, lass uns weitermachen und genau das versuchen, also werde ich versuchen, durch Null zu dividieren.
‫Ich werde zwei ganze Zahlen verwenden und keiner wird fünf sein und keine zwei wird null sein.
‫Und jetzt werde ich ein Ergebnis verwenden.
‫Das Endergebnis wird hier eingetragen.
‫Ergebnis ist gleich Nummer eins geteilt durch Nummer zwei.
‫Es ist nicht.
‫Lassen Sie uns das ohne Try and Cat versuchen, bevor wir try and catch verwenden.
‫Also lass es uns laufen lassen.
‫Bitte geben Sie eine Zahl ein und dividieren Sie dann durch Null Ausnahme, und ich hoffe, Sie können damit umgehen.
‫Also fügen wir jetzt einen Versuch und Fang hinzu.
‫Versuchen Sie es also oder machen Sie es sich tatsächlich einfacher und versuchen Sie es hier und verwenden Sie den Block-Doppeltipp.
‫Und jetzt möchte ich das innerhalb des Versuchs ausführen.
‫Und wenn es nicht geklappt hat, möchte ich einfach so etwas wie citable schreiben.
‫Sie können nicht durch Null dividieren.
‫Und jetzt war die Ausnahme, die wir gerade hatten, so aussehen.
‫Teilen Sie durch Null, versuchen Sie, durch Null zu teilen, und es wird als Ausnahme durch Null teilen bezeichnet.
‫Wenn Sie das also finden möchten, können Sie es hier unten finden.
‫Also werde ich genau das verwenden.
‫Ich werde die Ausnahme durch die Division durch Null Ausnahme ersetzen.
‫Lassen Sie uns diesen Code jetzt erneut ausführen.
‫Bitte geben Sie die Zahl ein, die von vorher war, und dann heißt es, kann durch Null geteilt werden.
‫Rechts.
‫Ich hoffe, Sie haben es versucht und ich hoffe, Sie erreichen genau das und Sie können jetzt sehen, wie Sie Ihren eigenen Versuch erstellen
‫und aufholen können.
‫Und im nächsten Video werden wir weitermachen und einige ausgefallenere Sachen verwenden.
‫Wir sehen uns also dort.