|
|
Opublikowano 17.12.2015 12:34:00
|
|
|

1. Niezależnie od tego, czy istnieje wyjątek czy wyjątek, kod w ostatnim bloku zostanie wykonany; 2. Gdy następuje powrót w próbie złapania, ostatecznie nadal zostanie wykonany egzekucja; 3. Ostatecznie wykonuje się po operacji wyrażenia po zwróceniu (w tym momencie wartość po operacji nie jest zwracana, ale wartość do zwrócenia jest zapisywana jako pierwsza, niezależnie od kodu w ostatecznym momencie, zwrócona wartość nie zmieni się, nawet jeśli jest to wcześniej zapisana wartość), więc wartość funkcji return jest ustalana przed ostatecznym wykonaniem; 4. Najlepiej nie uwzględniać zwrotu w finale, bo inaczej program zakończy się wcześniej, a wartość zwrotu nie jest tą zapisaną w próbie lub złapaniu. Przykład:
Sytuacja 1:try{} catch(){}final{} return;
Najwyraźniej procedura jest przeprowadzana w kolejności.
Sytuacja 2:try{ return; }catch(){} final{} return;
Program wykonuje kod przed return w bloku try (w tym operację wyrażenia w instrukcji return);
następnie wykonaj ostatni blok, a na końcu wykonaj powrót w try;
Na koniec zablokuj return, ponieważ program wrócił w try, więc nie jest już wykonywany.
Sytuacja 3:try{ } catch(){return; } wreszcie{} powrót;
Program wykonuje próbę jako pierwszy, a jeśli napotka wyjątek, wykonuje blok chwytania,
Jeśli wystąpi wyjątek, wykonaj kod przed return (w tym operację wyrażenia w instrukcji return) w catch, a następnie wykonaj cały kod w końcowym poleceniu.
Na koniec wykonaj powrót w bloku złapania. Ostatecznie kod w 4 miejscach nie będzie już wykonywany.
Bez wyjątku: wykonaj, spróbuj, a potem w końcu wróć.
Sytuacja 4:try{ return; }catch(){} final{return; }
Program wykonuje kod przed return w bloku try (w tym operację wyrażenia w instrukcji return);
Następnie wykonaj ostatni blok, ponieważ w ostatnim bloku jest powrót, więc wyjdź wcześniej.
Przypadek 5:try{} catch(){return; }wreszcie{return; }
Program wykonuje kod przed return (w tym operacje wyrażenia w instrukcji return) w bloku catch;
Następnie wykonaj ostatni blok, ponieważ w ostatnim bloku jest powrót, więc wyjdź wcześniej.
Sytuacja 6:try{ return; }catch(){return; } wreszcie{return; }
Program wykonuje kod przed return w bloku try (w tym operację wyrażenia w instrukcji return);
Istnieje wyjątek: wykonaj kod przed return (w tym operację wyrażenia w instrukcji return) w bloku catch;
Następnie wykonaj ostatni blok, ponieważ w ostatnim bloku jest powrót, więc wychodzi on wcześniej.
Bez wyjątków: potem wykonaj ostatni blok ponownie i wyjdź wcześniej, bo w ostatnim bloku jest powrót.
Ostateczne zakończenie: Każde zdanie return w try or catch jest wykonywane przed ostatecznym zdaniem, jeśli w końcu istnieje.
Jeśli jest w końcu instrukcja return, program wróci, więc return in na pewno zostanie zwrócony.
Kompilator implementuje zwrot w końcu jako ostrzeżenie.
|
Poprzedni:.net używa HttpListener do słuchania treści oraz wątków do odpowiadania użytkownikom, aby zapobiec blokowaniuNastępny:VS2013, szybko dotarcie do określonej linii kodu, jaki jest skrót?
|