17.3. Obsługa wyjątków

Podziękowania dla Steve’a Arneila

Problem

Chcemy obsłużyć zaistniały wyjątek.

Rozwiązanie

Kod obsługi wyjątku umieszcza się w bloku begin/rescue. Kod umieszczony wewnątrz klauzuli rescue powinien obsługiwać wyjątek i umożliwiać kontynuowanie działania programu.

Użycie klauzuli rescue zademonstrowano poniżej:

def raise_and_rescue
  begin
    puts 'Przed zgłoszeniem wyjątku.'
    raise 'Wystąpił błąd.'
    puts 'Po zgłoszeniu wyjątku.'
  rescue
    puts 'Wyjątek obsłużono!'
  end
  puts 'W bloku begin.'
end

raise_and_rescue
# Przed zgłoszeniem wyjątku.
# Wyjątek obsłużono!
# W bloku begin.

Wyjątek nie blokuje możliwości kontynuowania działania programu, ale kod, który został przerwany przez wyjątek, nigdy się nie wykona. Po obsłużeniu ...

Get Ruby. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.