Ruby/Przetwarzanie wyjątków: rescue: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m lit. |
|||
Linia 98:
</source>
Operacja otwarcia pliku generuje wyjątek będący podklasą <tt>SystemCallError</tt> więc zostanie wykonany blok obsługujący ten wyjątek. Interpreter po kolei sprawdza wszystkie bloki <tt>rescue</tt> i wykonuje pierwszy pasujący. Z tego też powodu nie należy umieszczać <tt>rescue Exception</tt> jako pierwszego, gdyż <tt>Exception</tt> jako nadklasa wszystkich wyjątków będzie tu zawsze pasować i blok obsługujący <tt>Exception</tt> będzie zawsze wykonywany.
Jeżeli podmienimy <tt>plik = open("jakis_plik")</tt> na np. <tt>raise "jakis blad"</tt> wykonany zostanie blok <tt>rescue</tt> obsługujący <tt>Exception</tt>:
|