Menu
Coddy logo textTech

Birden Fazla rescue İfadesi

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 45 / 56.

Tek bir begin bloğu birden fazla rescue yan cümlesine sahip olabilir. Ruby bunları yukarıdan aşağıya doğru kontrol eder ve istisna sınıfı eşleşen ilk bloğu çalıştırır.

begin
  number = Integer(gets.chomp)
  result = 100 / number
  puts result
rescue ArgumentError
  puts "That's not a valid number."
rescue ZeroDivisionError
  puts "Can't divide by zero."
end

Sıralama önemlidir: özel sınıfları genel olanlardan önce listeleyin. İlk sıraya yerleştirilen bir StandardError her şeyi yutar ve sonraki dallar asla çalışmaz.

Virgülle sıralayarak tek bir dalda birden fazla istisna sınıfını da yakalayabilirsiniz:

begin
  risky_call
rescue ArgumentError, TypeError => e
  puts "Bad input: #{e.message}"
end

Bunu, kurtarma kodu birden fazla hata durumu için aynı olduğunda kullanın.

challenge icon

Görev

Kolay

Girdiden tam sayı olması beklenen iki satır okuyun. Her ikisi için de Integer(...) kullanın, ardından ilkini ikinciye bölün.

Ayrı rescue dalları ile üç durumu ele alın:

  • ArgumentErrorBad number! yazdırın
  • ZeroDivisionErrorCannot divide by zero! yazdırın
  • TypeErrorWrong type! yazdırın

Her şey yolunda giderse, Result: <a / b> (tam sayı bölmesi) yazdırın.

10 / 2 girdisi için çıktı Result: 5 olur. 10 / 0 için Cannot divide by zero!. 10 / abc için Bad number!.

Kendin dene

raw_a = gets.chomp
raw_b = gets.chomp

# TODO: begin ... rescue ArgumentError ... rescue ZeroDivisionError ... rescue TypeError ... end
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler