For all sin glitrende magi, kan ikke Ruby beskytte deg fra å gjøre feil og heller ikke fra alt som kan gå galt.
1| $gardister = true 2| 3| def hent_kongen 4| raise SecurityError, "Området er usikret." unless $gardister 5| puts "Kanskje kommer Kongen..." 6| end 7| 8| begin 9| hent_kongen #=> "Kanskje kommer Kongen..." 10| $gardister = false 11| hent_kongen #=> "Negativt: Området er usikret." 12| rescue SecurityError => error 13| puts "Negativt: #{error}" 14| end |
Du kan også legge til en ensure
-klausul som kjøres uansett om det heves et unntak eller ikke.
1| begin 2| kode_som_kaster_unntak 3| rescue SecurityError => error 4| puts "Sikkerhetsproblem: #{error}" 5| rescue 6| puts "En eller annen StandardError." 7| ensure 8| puts "Opprydning gjøres okke som." 9| end |