Menu
Coddy logo textTech

begin / rescue

Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 44번째.

예외로 인해 프로그램이 종료되는 것을 막으려면 위험한 코드를 begin ... rescue ... end로 감싸세요. begin 내에서 예외가 발생하면 Ruby는 프로그램을 중단하는 대신 해당 rescue 블록으로 이동합니다.

begin
  result = 10 / 0
  puts result
rescue ZeroDivisionError
  puts "Cannot divide by zero!"
end
# 0으로 나눌 수 없습니다!

=> e를 사용하여 예외 객체 자체를 가져오고 .message를 읽을 수 있습니다:

begin
  Integer("hello")
rescue ArgumentError => e
  puts "Bad input: #{e.message}"
end
# 잘못된 입력: Integer()에 대한 유효하지 않은 값: "hello"

예외 클래스를 지정하지 않으면, rescue 단독 사용 시 StandardError 및 그 하위 클래스(대부분의 일상적인 오류)를 수집합니다. 예외 수집은 rescue 블록 내에서 기본값 대체, 문제 로깅, 사용자에게 다시 요청 등 무언가를 처리할 수 있을 때 가장 유용합니다.

challenge icon

챌린지

쉬움

입력에서 두 줄을 읽습니다. 둘 다 정수여야 하지만, 두 번째 줄은 올바른 숫자가 아닐 수 있습니다.

두 번째 줄의 파싱을 begin / rescue로 감싸세요:

  • Integer(input)을 사용하세요 (잘못된 문자열인 경우 ArgumentError를 발생시킵니다)
  • 파싱에 성공하면 Sum: <a + b>를 출력하세요
  • 실패하면 Bad number!를 출력하세요

입력이 3 다음에 4인 경우, 출력은 Sum: 7입니다. 3 다음에 abc인 경우, Bad number!입니다.

직접 해보기

a = gets.to_i
raw_b = gets.chomp

# TODO: Integer(raw_b) 주변에 begin/rescue; 합계를 출력하거나 지침의 정확한 텍스트를 출력
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨