Go 패닉

Jmnote (토론 | 기여)님의 2024년 2월 16일 (금) 13:08 판 (→‎같이 보기)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

Go panic
Go 패닉
  • Go 프로그래밍 언어에서 발생하는 런타임 오류
  • 일반적으로 프로그램이 예기치 않은 상황에 처해 더 이상 정상적으로 실행될 수 없음을 나타낸다.
  • Go의 런타임 시스템이 프로세스를 강제로 종료시키는 메커니즘이며, 이를 통해 개발자는 프로그램 실행 중에 문제가 발생했음을 쉽게 인식할 수 있다.
  • panic이 발생하면, Go 런타임 시스템은 현재 함수의 실행을 즉시 중단하고, 스택 트레이스를 출력한다. 이는 디버깅을 용이하게 하기 위함이다. 이후 프로그램은 "exit status 2"라는 상태 코드로 종료된다.
  • 프로그램이 panic 상태에 도달하면, defer 문을 사용하여 복구할 수 있는 마지막 기회를 제공한다. defer 문은 panic이 발생하기 전에 실행되며, 함수 호출 순서와 반대로 실행된다. 따라서 defer 문을 사용하여 파일 닫기나 데이터베이스 연결 종료와 같은 정리 작업을 수행할 수 있다.

2 발생상황[ | ]

  • 예기치 않은 타입의 값을 사용하거나 nil 포인터를 역참조하는 등의 잘못된 연산 수행하는 경우
  • 할당할 수 없는 메모리를 할당하려고 하는 경우
  • I/O 오류나 segmentation fault와 같은 심각한 오류가 발생한 경우

3 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}