Menu
Coddy logo textTech

Birden Çok rescue Yan Yönergesi

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

Bir begin bloğunda birkaç rescue yan tümcesi olabilir. Ruby bunları yukarıdan aşağıya kontrol eder ve istisna sınıfıyla eşleşen ilkini ç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ıra önemlidir: özel sınıfları genel olanlardan önce listeleyin. İlk sıraya yerleştirilen StandardError her şeyi yakalayacağından sonraki dallar hiçbir zaman çalışmaz.

Bir dalda birden fazla istisna sınıfını virgüllerle listeleyerek de yakalayabilirsiniz:

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

Kurtarma kodu birden fazla hata durumu için aynı olduğunda bunu kullanın.

challenge icon

Görev

Kolay

Girdiden iki satır okuyun; her ikisinin de tamsayı olması amaçlanmıştır. Her ikisi için Integer(...) kullanın, ardından birinciyi ikinciye bölün.

Üç durumu ayrı rescue dallarıyla 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> yazdırın (tamsayı bölmesi).

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

Kendi başına pratik yap: Online Ruby derleyicisi