Ruby:
Feilhåndtering
Hvordan gjøre det:
Ruby bruker begin, rescue, ensure og end for å håndtere feil. Du omslutter risikofylt kode med begin og end. Hvis en feil oppstår, trer rescue i kraft.
begin
# Risikofylt kode kommer her.
puts 10 / 0
rescue ZeroDivisionError => e
puts "Oops! Du kan ikke gjøre det: #{e.message}"
ensure
puts "Dette kjører alltid, uansett feil eller ikke."
endEksempel på utskrift:
Oops! Du kan ikke gjøre det: delt på 0
Dette kjører alltid, uansett feil eller ikke.Dypdykk
Historisk har feilhåndtering i programmeringsspråk utviklet seg betydelig, med tidlige språk som ofte hadde primitive eller ikke-eksisterende mekanismer. Rubys unntakshåndtering er inspirert av språk som Python og Smalltalk.
Alternativer til begin-rescue i Ruby inkluderer bruk av rescue i metodedefinisjoner eller å bruke throw og catch for ikke-standard flytkontroll, selv om de ikke brukes for typisk feilhåndtering.
En interessant detalj: Unntak i Ruby er objekter (instanser av Exception-klassen og dens etterkommere), så du kan definere egendefinerte feilklasser og gjøre mer enn bare å logge feil – du kan bære med deg rik tilstand rundt programmet for mer robust feilhåndtering.
Se også
- Ruby-dokumentasjonen om unntak og feilhåndtering: ruby-doc.org
- En detaljert veiledning om beste praksiser for feilhåndtering i Ruby: thoughtbot.com