在Go语言中,错误处理是非常重要的一部分。以下是Go语言中常见的错误处理方法:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered:", r)
}
}()
// 程序正常执行
}
func divide(a, b int) (int, error) {
if b == 0 {
panic("division by zero")
}
return a / b, nil
}
import (
"errors"
"fmt"
)
var ErrDivisionByZero = errors.New("division by zero")
func divide(a, b int) (int, error) {
if b == 0 {
return 0, ErrDivisionByZero
}
return a / b, nil
}
func main() {
_, err := divide(10, 0)
if err != nil {
if errors.Is(err, ErrDivisionByZero) {
fmt.Println("Error:", err)
} else {
fmt.Println("Unknown error:", err)
}
}
}
import (
"log"
)
func divide(a, b int) (int, error) {
if b == 0 {
log.Println("Error: division by zero")
return 0, errors.New("division by zero")
}
return a / b, nil
}
func main() {
_, err := divide(10, 0)
if err != nil {
log.Fatalf("Error: %v", err)
}
}
总之,Go语言提供了多种错误处理方法,可以根据实际情况选择合适的方法进行处理。