๋ฐ์ํ
Go์์ ์ค์ํ๊ธฐ ์ฌ์ด ์ผ์ด์ค - defer, panic, recover
Go์์ ์ค์ํ๊ธฐ ์ฌ์ด ์ผ์ด์ค - defer, panic, recover
2019.04.242์ค ์์ฝ recover ๋ deferํจ์์ ์ํด ์ง์ ์ ์ผ๋ก ํธ์ถ๋๋ฉด ์๋๋ค. panic์ ์ค๋จ์ํฌ ํจ์์ depth๊ฐ n์ด๋ผ๋ฉด recover๋ n+1 ์์ ํธ์ถ๋์ด์ผ ํ๋ค. ์ฐฉ๊ฐํ๊ธฐ ์ฌ์ด ์ผ์ด์ค ๋ค๋ฅธ ์ธ์ด์ try-catch๋ฌธ๊ณผ ๋น์ทํ๊ฒ go์์๋ defer, panic, recover ํจํด์ ์ด์ฉํด์ ๋ฐ์ํ๋ ์์ธ ์ํฉ์ ์ ์ด ํ ์ ์๋ค. package main import ( "fmt" ) func main() { defer a() panic("panic!") } func a() { r := recover() fmt.Println("recoverd: ", r) fmt.Println("a called") } recoverd: panic! a called Program exited. ๋ง์ฝ ์ง์ฐ ํธ์ถ ..