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.