Next Previous Contents

37. <6.1>: Exceptions: Feil og unntak. Når ting går galt.

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


Next Previous Contents