Golang 에러 처리, 에러 생성, 예외 처리
1. 에러 처리
package main
import (
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("0으로 나눌 수 없습니다")
}
return a / b, nil
}
func main() {
result, err := divide(10, 2) // divide 함수 호출
if err != nil {
fmt.Println("에러 발생:", err)
} else {
fmt.Println("결과:", result)
}
result, err = divide(10, 0) // 에러가 발생하지 않는 경우
if err != nil {
fmt.Println("에러 발생:", err)
} else {
fmt.Println("결과:", result)
}
}
2. 예외 강제 발생 예제
package main
import (
"errors"
"fmt"
)
// 강제 에러 발생 함수
func exampleFunction(input int) (string, error) {
if input < 0 {
return "", errors.New("입력 값은 0 이상이어야 유효합니다")
}
return fmt.Sprintf("입력 값: %d", input), nil
}
func main() {
// 에러 체크 예제
inputs := []int{5, -3, 10}
for _, input := range inputs {
result, err := exampleFunction(input)
if err != nil {
fmt.Printf("에러 발생: %s\n", err)
} else {
fmt.Println("결과:", result)
}
}
}
3. 예외 처리 예제
package main
import "fmt"
func main() {
panicFunction() // 패닉 예외 발생시키는 함수 호출
}
func panicFunction() {
// recover 함수와 defer 키워드를 사용하여 패닉 예외 처리
defer func() {
if r := recover(); r != nil {
fmt.Println("패닉을 처리합니다:", r)
}
}()
fmt.Println("패닉 발생!!!")
panic("패닉 상황 발생")
}
'Go (Golang)' 카테고리의 다른 글
Golang, 배열과 슬라이스 비교, 슬라이스 항목 제거 (0) | 2024.01.14 |
---|---|
Go 언어 배열 생성, 인덱스 접근, 항목 주소 확인 (0) | 2024.01.13 |
go 소스 코드에서 C 코드를 이용하기 (1) | 2023.12.26 |
Golang, 간단한 Go API 서버 예제 (0) | 2023.12.24 |
다른 언어에서 Go 함수 호출하기 (C언어 .so 파일 이용) (1) | 2023.12.23 |