Ruby 프로그램을 조기에 중지하는 방법은 무엇입니까?
일반적으로 프로그램은 완료될 때까지 실행됩니다 모든 지시를 처리합니다.
또는 처리되지 않는 예외가 발생할 때까지.
하지만 항상 실행할 필요가 없는 Ruby 프로그램을 작성하는 경우 , 이런저런 이유로 프로그램을 조기에 중단할 수 있습니다.
exit
로 이 작업을 수행할 수 있습니다. 방법.
이 종료 방법은 어떻게 작동하나요?
그것에 대해 이야기합시다!
프로그램을 중지하는 다양한 방법
exit
를 호출할 때 프로그램이 즉시 중지되지 않습니다.
이렇게 됩니다 :
Ruby는 SystemExit
를 발생시킵니다. 프로그램의 다른 부분에 정리할 기회를 제공하는 예외입니다.
이 코드를 실행하여 데모를 볼 수 있습니다. :
begin exit rescue SystemExit p 123 end
이것은 123
을 출력합니다. 나가기 전에.
프로그램이 이 정리 프로세스를 건너뛰도록 하려면 exit!
를 사용할 수 있습니다. .
예시 :
begin exit! rescue SystemExit p 123 end
이것이 123
을 인쇄하지 않는 것에 주목하십시오. 프로그램이 종료되기 전에.
다른 방법을 사용할 수도 있습니다.
abort
이라고 합니다. .
이 방법을 사용하면 오류 메시지를 제공할 수 있습니다.
좋아요 :
abort "No Bacon Left"
다음과 동일 :
warn "No Bacon Left!" exit 1
warn
메소드는 오류 메시지를 표준 오류로 출력합니다.
하지만 이 1
은(는) 무엇입니까? exit
인수 ?
이것이 다음 토론 주제입니다!
상태 코드 이해
Ruby 프로그램뿐만 아니라 모든 프로그램이 종료되면 상태 코드가 남습니다.
알아야 할 사항 :
0
의 상태 코드 프로그램이 정상적으로 종료되었음을 의미합니다.- 기타 상태 코드(
0
아님) )는 오류 상태를 알리는 데 사용됩니다. - 0이 아닌 상태 코드를 반환하는 효과는 현재 환경에 따라 다릅니다.
유용합니다. 운영 체제 또는 일반 프로그램이 이 상태 코드를 사용할 수 있기 때문에 모니터링, 로깅 및 실패한 프로그램을 자동으로 다시 시작합니다.
Linux에서는 echo $?
를 사용할 수 있습니다. 마지막 프로그램의 종료 상태 코드를 찾습니다.
루비로 돌아가자 :
exit
를 호출할 때 상태 코드는 0
입니다. 기본적으로.
다른 상태 코드를 인수로 전달할 수 있습니다.
그래서 abort
를 호출할 때 상태 코드가 1
로 설정됨 , abort
방법은 오류를 알리는 데 사용됩니다.
루프 중지
전체 프로그램을 중지하지 않고 루프만 중지하려면 다른 것을 사용해야 합니다.
break
를 사용할 수 있습니다. 키워드:
while 1 == 1 break end
이는 while 루프뿐만 아니라 블록 내에서도 작동합니다.
메서드 종료
Ruby 메서드는 코드의 마지막 줄에서 자연스럽게 끝납니다.
더 일찍 나가시려면...
return
사용 키워드.
예 :
def apples return "I had my two apples today" "bacon" end
이 코드는 "bacon"
에 도달하지 않습니다. 조기 return
때문에 .
보너스:무한 루프 중지
발생합니다.
때때로 카운터를 늘리고 무한 루프를 생성하는 것을 잊습니다. .
프로그램을 중지하려면 키 조합을 누를 수 있습니다.
CTRL+C
요약
exit
에 대해 배웠습니다. Ruby의 메소드, abort
방법, 종료 상태 코드 및 루프를 탈출하는 방법.
더 많은 사람들이 즐길 수 있도록 이 기사를 공유하는 것을 잊지 마세요.
읽어 주셔서 감사합니다! 🙂