우선, "실제로 사용되는 방법"에 대한 질문이있을 때마다 Go 소스 코드 (또는 실제로는 충분히 큰 Go 코드베이스) 및 패키지 문서 를 검색 하는 것이 좋습니다. 답변을.
지금 os.Exit
과 panic
상당히 다르다. panic
프로그램 또는 그 부분이 복구 불가능한 상태에 도달했을 때 사용됩니다.
때 panic
와 같은 범위를 벗어 조각을 색인 또는 형의 주장을 실패로 런타임 오류를 암시 적으로 포함라고, 즉시 현재 함수의 실행을 중지하고 길을 따라 어떤 연기 기능을 실행되는 goroutine의 스택을 풀기 시작한다. 해제가 고 루틴 스택의 맨 위에 도달하면 프로그램이 종료됩니다.
os.Exit
복구 가능성이 없거나 지연된 정리 명령문을 실행하지 않고 프로그램을 즉시 중단하고 오류 코드 (다른 프로그램이 발생한 상황을보고하는 데 사용할 수 있음)를 반환해야 할 때 사용됩니다. 이것은 테스트에서 유용합니다.이 테스트가 실패한 후 다른 테스트도 실패한다는 것을 이미 알고있는 경우, 지금 종료하는 것이 좋습니다. 프로그램이 필요한 모든 작업을 수행하고 이제 종료해야 할 때 (예 : 도움말 메시지를 인쇄 한 후) 사용할 수도 있습니다.
대부분의 경우 사용하지 않으며 panic
( error
대신을 반환해야 함 ) os.Exit
테스트 및 빠른 프로그램 종료를 위해 일부 경우를 제외하고는 거의 필요하지 않습니다 .
panic
에서 순전히 이해하기 쉽고 다른 패키지를 가져 오지 않기 때문에 오류시 종료하는 데 사용됩니다. 이것은 그것이 훌륭하거나 관용적 인 연습이라는 것을 의미하지 않습니다! . 예제 코드를위한 공간 절약 장치 일뿐입니다. 매우 특별한 상황을panic
위한 IRL 예약 .