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()
}










