Nowości w PHP 5.5 część 2 – Słowo kluczowe finally

W tym poście opiszę kolejną ważną rzecz jaką dodano do PHP 5.5 – słowo kluczowe finally. Według mnie brak tego słowa kluczowego to jedno z większych niedociągnięć PHP. Zawsze gdy wracałem do PHP po sporadycznych kilkumiesięcznych epizodach jako programista .NET nie mogłem się nadziwić jak można było je pominąć. Teraz wreszcie przestane się dziwić 😉 Kto pisał (lub pisze) w C# lub podobnym zapewne doskonale wie o co chodzi z finally. Dla reszty wyjaśnienie poniżej.

Otóż standardowo w PHP 5.4 wyjątek przechwytujemy w następujący sposób:

Jednak pozostaje pytanie: co w przypadku gdy chcemy po przechwyceniu wyjątku wykonać jeszcze jakiś kod? Możemy to zrobić w następujący sposób:

Jednak to rozwiązanie ma swoje wady. Po pierwsze trzeba stworzyć nową zmienną, w której będziemy przechowywać informacje czy wystąpił wyjątek czy nie. Inny problem jest znacznie poważniejszy: otóż gdy pojawi się inny typ wyjątku niż ten, który przewidzieliśmy kod po bloku try – catch nie zostanie uruchomiony. Przykład poniżej:

Tu z pomocą przychodzi nam właśnie blok finally, w którym możemy umieścić kod jaki ma być wywołany po przechwyceniu wyjątku. Kod zawarty w tym bloku będzie także wykonany gdy wyjątek nie zostanie przechwycony. Innymi słowy – zostanie wykonany zawsze niezależnie od tego czy jakikolwiek wyjątek się pojawi czy też nie. Przykład zastosowania poniżej:

Kod, który we wcześniejszych przekładach został umieszczony w warunku if(true === $ex) został teraz przeniesiony do bloku finally. Nie ma potrzeby tworzenia dodatkowych zmiennych itp. rzeczy. Prawda, że ładnie?

Posty które mogą Cię zainteresować:

Dodaj komentarz

Your email address will not be published. Please enter your name, email and a comment.