Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15557|Antwort: 0

[Kommunikation] Wenn es eine Rückkehr gibt, versuchen Sie abschließend, die Ausführungsreihenfolge zu fangen

[Link kopieren]
Veröffentlicht am 17.12.2015 12:34:00 | | |
1. Unabhängig davon, ob es eine Ausnahme oder eine Ausnahme gibt, wird der Code im finalen Block ausgeführt;
2. Wenn es eine Rückkehr im Versuch und Fang gibt, wird es schließlich trotzdem ausgeführt;
3. Schließlich wird nach der Ausdrucksoperation nach der Rückgabe ausgeführt (zu diesem Zeitpunkt wird der Wert nach der Operation nicht zurückgegeben, aber der zurückzugebende Wert wird zuerst gespeichert, unabhängig vom Code in letztendlich ändert sich der zurückgegebene Wert nicht, selbst wenn es sich um den zuvor gespeicherten Wert handelt), sodass der Rückgabewert der Funktion vor der endgültigen Ausführung bestimmt wird;
4. Es ist am besten, Return nicht in Final einzubeziehen, da das Programm sonst früh endet, und der Returnwert ist nicht der in Try oder Catch gespeicherte Return-Wert.
Beispiel:
Situation 1:try{} catch(){}endlich{} return;
            Offenbar wird das Verfahren in der richtigen Reihenfolge durchgeführt.
Situation 2:try{ return; }catch(){} schließlich{} zurück;
          Das Programm führt den Code vor Return im Try-Block aus (einschließlich der Ausdrucksoperation in der return-Anweisung);
         führt dann den Finally Block aus und führt schließlich die Rückkehr in Try aus;
         Schließlich Block-Return, weil das Programm in Try zurückgekehrt ist und es daher nicht mehr ausgeführt wird.
Situation 3:try{ } catch(){return; } schließlich{} kehren zurück;
         Das Programm führt zuerst Try aus, und wenn es auf eine Ausnahme stößt, führt es den Catch-Block aus,
         Falls eine Ausnahme vorliegt, führe den Code vor Return (einschließlich der Ausdrucksoperation in der return-Anweisung) im Catch aus und führe dann den gesamten Code in der finalen Anweisung aus.
                     Führe schließlich die Rückgabe im Catch-Block aus. Danach wird der Code an 4 Stellen nicht mehr ausgeführt.
         Keine Ausnahme: Ausführen, versuchen und dann schließlich zurückkehren.
Situation 4:try{ return; }catch(){} endgültig{return; }
          Das Programm führt den Code vor Return im Try-Block aus (einschließlich der Ausdrucksoperation in der return-Anweisung);
          Dann führe den letzten Block aus, denn im Endblock gibt es eine Rückkehr, also verlasse frühzeitig.
Fall 5:try{} catch(){return; }endgültig{zurückkehren; }
          Das Programm führt den Code vor der Rückgabe (einschließlich Ausdrucksoperationen in der return-Anweisung) im Catch-Block aus;
          Dann führe den letzten Block aus, denn im Endblock gibt es eine Rückkehr, also verlasse frühzeitig.
Situation 6:try{ return; }catch(){return; } schließlich{return; }
          Das Programm führt den Code vor Return im Try-Block aus (einschließlich der Ausdrucksoperation in der return-Anweisung);
          Es gibt eine Ausnahme: Führe den Code vor Return aus (einschließlich der Ausdrucksoperation in der return-Anweisung) im Catch-Block;
                       Dann führe den Endblock aus, weil es Return im Endblock gibt, sodass er frühzeitig ausgeht.
          Keine Ausnahme: Dann führe ich den letzten Block erneut aus und verlasse den Block früher, weil es im letzten Block eine Rückkehr gibt.

Abschließendes Fazit: Jede Rückgabe-Anweisung in Try oder Catch wird vor der Endanweisung ausgeführt, sofern sie schließlich existiert.
                  Wenn es eine Rückgabe-Anweisung in finally gibt, wird das Programm zurückkehren, also wird die Rückgabe in endgültig definitiv zurückgegeben.
                  Der Compiler implementiert die Rückgabe schließlich als Warnung.




Vorhergehend:.net nutzt HttpListener, um Inhalte anzuhören, und nutzt Threads, um auf Nutzer zu reagieren, um Blockierungen zu verhindern
Nächster:VS2013, erreiche schnell eine bestimmte Codezeile, was ist die Abkürzung?
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com