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