当前位置: 代码网 > it编程>前端脚本>Golang > Go语言异常处理error、panic、recover的使用

Go语言异常处理error、panic、recover的使用

2024年09月08日 Golang 我要评论
异常处理go 语言引入了一个关于错误处理的标准模式,即 error 接口,它是 go 语言内建的接口类型,该接口的定义如下:package errorsfunc new(text string) er

异常处理

go 语言引入了一个关于错误处理的标准模式,即 error 接口,它是 go 语言内建的接口类型,该接口的定义如下:

package errors

func new(text string) error {
	return &errorstring{text}
}

// errorstring is a trivial implementation of error.
type errorstring struct {
	s string
}

func (e *errorstring) error() string {
	return e.s
}
  • 通过fmt包进行使用errorf接口
  • 通过自带的errors包进行调用

在这里插入图片描述

常用在我们对检测程序是否正常

在这里插入图片描述

panic

在通常情况下,向程序使用方报告错误状态的方式可以是返回一个额外的 error 类型值。
但是,当遇到不可恢复的错误状态的时候,如数组访问越界、空指针引用等,这些运行时错误会引起 painc 异常。在一般情况下,我们不使用 panic 函数来报告普通的错误,而应该只把它作为报告致命错误的一种方式。当某些不应该发生的场景发生时,就调用panic。
一般而言,当 panic异常发生时,程序会中断运行,并立即执行在该 goroutine(可以先理解成线程,在中被延迟的函数(defer机制)。随后,程序崩溃并输出日志信息。日志信息包括 panic value 和函数调用的堆栈跟踪信息。
不是所有的 panic 异常都来自运行时,直接调用内置的 panic 函数也会引发 panic 异常: panic函数接受任何值作为参数。

func panic(v interface{})

直接调用panic函数

直接调用内置的 panic 函数也会引发 panic 异常。

在这里插入图片描述

数组越界导致panic

在这里插入图片描述

recover

运行时 panc 异常一旦被引发就会导致程序崩溃。go语言为我们提供了专用于“拦截”运行时 panic 的内建所数–recover。它可以是当前的程序从运行时 panic 的状态中恢复并重新获得流程控制权。

fune recover()interface{}

注意:recover只有在defer调用的所数中有效。

如果调用了内置函数recover,并且定义该 defer 语句的函数发生了 panic 异常,recover 会使程序从 panic 中恢复,并返回 panic value。导致panic 异常的函数不会继续运行,但能正常返回。在未发生 panic 时调用recover,recover 会返回 nil。

在这里插入图片描述

到此这篇关于go语言异常处理error、panic、recover的使用的文章就介绍到这了,更多相关go语言异常处理内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com