메뉴

문서정보

예제로 살펴보는 Go : Panic

panic은 예상치 못한 문제가(unexpected errors) 발생 했음을 알려주기 위해서 사용한다. 보통 우아하게(gracefully)하게 처리할 수 없는 치명적인 에러에 대해서 즉시 처리 하기 위해서 사용한다.

package main

import "os"

func main() {
    panic("A problem!!!")
    
    _, err := os.Create("/tmp/file01")
    if err != nil {
        panic(err)
    }
}
		

예제는 panic()함수를 이용해서, 예상치 못한 문제의 발생을 시뮬레이션했다. panic()은 에러를 평가 할 수 없을 때, 기능을 아예 중지하는게 더 안전하다고 판단 할 때 사용한다. 프로그램을 실행하면 panic 메시지 "A problem!!!"을 출력하고 프로그램이 중단 된다. 프로그램의 종료 코드로 0이외의 값이 나온다. shell에서 프로그램을 실행했다면, 종료 코드를 측정 하는 것으로 프로그램의 정상종료 여부를 알 수 있다. 또한 코드의 어느 부분에서 panic이 발생했는지를 출력한다. 개발자는 이 정보를 이용해서 코드를 개선 할 수 있다.

오류와 예외의 처리를 지원하는 일부 언어들과는 달리, go는 반환 값을 이용해서만 에러를 확인 할 수 있다.

다음 예제 : Defer