panic 이해하기
Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 42번째.
Go에서, panic은 프로그램이 복구 불가능한 오류를 만나 즉시 중단되어야 하는 진정으로 예외적인 상황에서 사용되는 내장 함수입니다. 우아하게 처리하는 일반적인 오류와 달리, panic은 프로그램의 로직이나 환경에 근본적으로 잘못된 무언가가 있음을 나타내는 치명적인 실패를 위해 예약되어 있습니다.
panic이 호출되면, 현재 함수의 정상적인 실행을 즉시 중단하고 콜 스택을 되감기(unwinding) 시작합니다. 이는 호출한 코드에서 처리할 수 있는 에러를 반환하는 일반적인 Go의 방식과는 매우 다릅니다.
관용적인 Go에서 panic은 거의 사용되지 않습니다. Go 커뮤니티는 panic 기반의 에러 처리보다는 반환 값을 통한 명시적인 에러 처리를 강력히 선호합니다. 배열의 범위를 벗어난 접근, nil 포인터 역참조, 또는 라이브러리가 프로그래밍 버그를 나타내는 불가능한 상태를 감지하는 경우와 같은 상황에서 panic을 마주칠 수 있습니다.
대부분의 Go 프로그램은 지금까지 배워온 표준 error 인터페이스를 사용하여 에러를 적절하게 처리해야 합니다. panic은 프로그램이 계속 실행될 수 있는 합리적인 방법이 정말로 없을 때만 고려되어야 합니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
치트 시트
Go에서, panic은 프로그램 실행을 즉시 중단시키는 복구 불가능한 오류를 위한 내장 함수입니다:
panic("something went terribly wrong")panic이 호출되면, 현재 함수를 중단하고 콜 스택을 해제(unwind)합니다. panic은 프로그램이 계속될 수 없는 치명적인 실패의 경우에만 드물게 사용하십시오. Go는 panic 기반의 오류 처리보다 반환 값을 통한 명시적인 오류 처리를 선호합니다.
일반적인 panic 상황에는 배열 범위 초과 접근, nil 포인터 역참조, 또는 버그를 나타내는 불가능한 프로그램 상태 등이 포함됩니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.