go에서 기본적으로 제공하는 함수로 panic()과 recover()가 있다. 단순 콘솔 출력해도 fmt 패키지를 임포트해야하는 go인데 저 두 함수는 아무것도 임포트할필요없이 곧바로 제공하고있다. 함수명에서부터 알 수 있듯이 panic()은 go 실행 루틴을 패닉에 빠지게하고(강제종료) recover()는 그걸 복구하는 역할을 한다. 간단한 예제를 살펴보자. func main() { fmt.Println("hello") panic("happen panic!") fmt.Println("goodbye") } panic() 이 실행되면서 실행 루틴이 종료되기때문에 goodbye는 출력되지 않는다.recover() 를 이용해서 복구시켜보자. func main() { fmt.Println("hello") pan..
Go 언어에서 defer 키워드는 해당 키워드를 사용한 함수가 끝날때 호출되게된다. func main() { fmt.Println("a") defer fmt.Println("b") fmt.Println("c") } 즉 이런 코드가 있으면 a, b, c 로 출력이 되는게 아니고 a, c가 출력되고 b는 main이 종료될때 출력되어 a, c, b가 출력되는것이다. file IO 에서 자원을 닫는 구문처럼 항상 마지막에 수행해야하는 코드가 있다면 defer를 이용해서 최상단에서 호출할 수도 있는것이다. file.open();defer file.close(); 처럼말이다. defer가 2번 이상 사용됐다면 이때는 stack에 담기는것처럼 역순으로 실행되게된다. func main() { fmt.Println("a..
- Total
- Today
- Yesterday
- Spring
- generics
- programming
- Kotlin
- code
- java
- MySQL
- Design Pattern
- frontend개발환경
- TEST
- mariadb
- Jackson
- java8
- http
- JavaScript Core
- frontcode
- EffectiveJava
- OOP
- db
- DesignPattern
- javascript
- servlet
- JPA
- 정규표현식
- backend개발환경
- toby
- clean code
- go-core
- Git
- spring cloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |