go实现异常捕捉

相信大家在使用go语言开发的,遇到很多不熟悉或者是很多难得点吧,其中针对go语言的异常捕获,和其他的语言不一样,使用起来相信大家也不知道怎么使用,接下来会写一个小例子,希望大家从小例子中掌握异常捕获

go 复制代码
func TestGoCountDown(t *testing.T) {
	fmt.Println("start")
	worker()
	fmt.Println("end")

}

func worker() {
	//	在这里进行一个异常的捕获,后面的异常会在这里捕获到,并不会影响 end的输出
	defer func() {
		if e := recover(); e != nil {
			fmt.Printf("Panicing %s\r\n", e)
		}
	}()
	badCall()
	fmt.Println("After bad call")
}

func badCall() {
	panic("bad call")
}
相关推荐
吴佳浩4 小时前
Python入门指南(六) - 搭建你的第一个YOLO检测API
人工智能·后端·python
长安第一美人5 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan5 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
踏浪无痕5 小时前
JobFlow已开源:面向业务中台的轻量级分布式调度引擎 — 支持动态分片与延时队列
后端·架构·开源
superman超哥5 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
Pitayafruit5 小时前
Spring AI 进阶之路05:集成 MCP 协议实现工具调用
spring boot·后端·llm
不爱吃糖的程序媛6 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo6 小时前
MATLAB奔溃记录
开发语言·matlab
ss2736 小时前
线程池:任务队列、工作线程与生命周期管理
java·后端
不像程序员的程序媛6 小时前
Spring的cacheEvict
java·后端·spring