2013-10-16 8 views
0

if-else-end와 함께 begin-rescue-end를 사용하는 것에 다소 어려움이 있습니다. 아래의 코드 스 니펫을 참조하십시오.루비 시작하기 if-then-else로 구조 끝

def fn1 
    unless fn2? 
     puts "Message 1" 
     return 
    end 

    puts "Message 2" 
end 

def fn2? 
    begin 
     <do action> 
    rescue 
     <handle error here> 
     puts "Message 3" 
     return 
    end 

    if <condition> 
     puts "Message 4" 
     return true 
    else 
     puts "Message 5" 
     return false 
    end 
end 

예외가 발생하지 않으면 if-else가 실행되어 fn1에 true 또는 false를 반환합니다. 이것에 문제 없습니다.

하지만 시작 블록에서 예외가 발생하면 "메시지 1"을 인쇄하지 않고 "메시지 3"을 인쇄하고 프로그램을 끝내기를 원합니다.

모든 포인터를 알려주세요. 감사.

답변

1

당신은 (단지 fn2?에서 돌아 오는 대신) 프로그램을 종료하려는 경우 예를 들어, Kernel#exit를 사용할 수 있습니다

begin 
    <do action> 
rescue 
    <handle error here> 
    puts "Message 3" 
    exit(1) 
end