Ruby:
Gestione degli errori
Come fare:
Ruby utilizza begin
, rescue
, ensure
ed end
per gestire gli errori. Si racchiude il codice rischioso tra begin
ed end
. Se si verifica un errore, entra in gioco rescue
.
begin
# Il codice a rischio va qui.
puts 10 / 0
rescue ZeroDivisionError => e
puts "Ops! Non puoi fare questo: #{e.message}"
ensure
puts "Questo viene sempre eseguito, errore o no."
end
Esempio di Output:
Ops! Non puoi fare questo: diviso per 0
Questo viene sempre eseguito, errore o no.
Approfondimento
Storicamente, la gestione degli errori nei linguaggi di programmazione ha subito notevoli evoluzioni, con linguaggi antichi che spesso avevano meccanismi grezzi o inesistenti. La gestione delle eccezioni in Ruby è ispirata a linguaggi come Python e Smalltalk.
Alternative al begin-rescue
in Ruby includono l’uso di rescue
nelle definizioni dei metodi o l’impiego di throw
e catch
per il controllo del flusso non standard, sebbene non siano utilizzati per la tipica gestione degli errori.
Un dettaglio interessante: le eccezioni in Ruby sono oggetti (istanze della classe Exception
e dei suoi discendenti), quindi è possibile definire classi di errore personalizzate e fare più che semplicemente registrare gli errori — si può trasportare uno stato ricco attraverso il programma per una gestione degli errori più robusta.
Vedere Anche
- La documentazione Ruby sulle eccezioni e la gestione degli errori: ruby-doc.org
- Una guida dettagliata sulle migliori pratiche per la gestione degli errori in Ruby: thoughtbot.com