Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby 프로그램에 조기 실행을 중지하도록 지시하는 방법

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 방법, 종료 상태 코드 및 루프를 탈출하는 방법.

더 많은 사람들이 즐길 수 있도록 이 기사를 공유하는 것을 잊지 마세요.

읽어 주셔서 감사합니다! 🙂