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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.