17.4. Ponawianie próby wykonania kodu po wystąpieniu wyjątku

Podziękowania dla Steve’a Arneila

Problem

Chcemy ponowić próbę wykonania kodu, który spowodował wyjątek, po uprzednim usunięciu (w zamierzeniu) jego przyczyny.

Rozwiązanie

Aby ponowić próbę wykonania kodu, który spowodował wystąpienie wyjątku, można użyć instrukcji retry w klauzuli rescue bloku kodowego. Instrukcja retry powoduje wykonanie bloku od początku.

Poniżej zaprezentowano sposób użycia instrukcji retry. Uruchomienie kodu po raz pierwszy powoduje wystąpienie wyjątku. Po obsłużeniu błędu i jego naprawieniu następuje druga próba uruchomienia kodu:

def rescue_and_retry error_fixed = false begin puts 'Przed zgłoszeniem wyjątku, w bloku begin.' raise 'Wystąpił błąd!' ...

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.