Ruby/Przetwarzanie wyjątków: rescue: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
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>: