panic:
演示:
func main() {
fmt.Println("panic执行前")
panic("程序终止") // 走到这里整个程序会退出,后面的都不会执行
fmt.Println("panic执行后")
}
error:
演示:
package main
import (
"errors"
"fmt"
)
func TestError(num1, num2 int) (result int, err error) {
err = nil
if num1 == 0 || num2 == 0 {
fmt.Println("除数不能为0")
return
}
result = num1 / num2
return
}
func main() {
num, err := TestError(10, 1)
if err != nil {
err = errors.New("除数不能为0")
} else {
fmt.Println(num)
}
}
Unwrap:
recover错误拦截:
演示:
func main() {
defer TestRecover()
fmt.Println("panic执行前")
panic("程序终止")
fmt.Println("panic执行后")
}
func TestRecover() {
recover()
}