Updated:

less than 1 minute read

개요

  • 패닉 상태를 복구
  • 패닉이 발생한 함수는 즉시 종료되지만 그 이후는 계속 실행
  • panic 함수에 전달된 값은 recover 함수가 반환


예제

  • 코드
     package main
        
     import "fmt"
        
     func wrapper() {
     	r := recover()
     	if r == nil {
     		return
     	}
        
     	fmt.Println(r)
     }
        
     func test() {
     	defer wrapper()
        
     	if true {
     		panic("!!!")
     	}
        
     	println("test() end")
     }
        
     func main() {
     	test()
        
     	println("main end")
     }
    
  • 실행 결과
     !!!
     main end