5、panic——异常处理

go语言入门

panic

用于抛出一个运行时异常,会向上传播,直到某个方法中使用了recover的内建函数接收了这个异常,程序才会恢复

需要配合defer函数使用,这样才符合接收异常的语句。而且defer语句要写在可能发生异常的代码之前

以下例子会输出这些内容
Enter main
Enter outerFunc
Enter innerFunc
Fatal error: Occur a panic!

package main

import (
    "errors"
	"fmt"
)

func innerFunc() {
	fmt.Println("Enter innerFunc")
	panic(errors.New("Occur a panic!"))
	fmt.Println("Quit innerFunc")
}

func outerFunc() {
    
	fmt.Println("Enter outerFunc")
	innerFunc()
	fmt.Println("Quit outerFunc")
	
}

func main() {
    defer func() {
    if p := recover(); p != nil {
        fmt.Printf("Fatal error: %s\n", p)
    }
}()
	fmt.Println("Enter main")
	outerFunc()
	fmt.Println("Quit main")

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值