文档章节

GO错误的一些处理(defer,recover,panic)

汤汤圆圆
 汤汤圆圆
发布于 09/18 20:49
字数 268
阅读 1
收藏 0
Go
package main 

import(
	"fmt"
	"errors"
)

func main() {
	num := 10
	fmt.Printf("num的类型%T, num的值%v, num的地址%v\n", num, num, &num)

	num2 := new(int) //返回一个指针
	//num2的类型*int, num2的值0xc04200e0b8, num2的地址0xc042004030, num2指向的值0
	fmt.Printf("num2的类型%T, num2的值%v, num2的地址%v, num2指向的值%v\n", num2, num2, &num2, *num2)

	//捕获异常
	testCatch()
	fmt.Println("我还会执行")

	//自定义错误 panic
	testPanic()
	fmt.Println("我是panic后续代码");
}

func testCatch() {
	//使用defaer+recover捕获异常
	defer func(){
		err := recover() //一个内置函数,能捕获异常
		if nil != err {
			fmt.Println("err=", err)
		}
	}()
	n1 := 10
	n2 := 0
	n3 := n1 / n2 //发生异常
	fmt.Println("catch.....", n3);
}

func readConf(name string) (err error) {
	if "config.ini" == name {
		return nil
	} else {
		return errors.New("发生错误")
	}
}

func testPanic() {
	err := readConf("config2.ini")
	if nil != err {
		panic(err) //如果有错误,这里抛出错误且终止后续程序的执行
	}
	fmt.Println("I am ok 继续执行")
}

© 著作权归作者所有

共有 人打赏支持
汤汤圆圆

汤汤圆圆

粉丝 11
博文 74
码字总数 23659
作品 0
昌平
程序员
golang捕获异常

Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,...

吴之恒心
2017/03/01
0
0
golang学习的点点滴滴:异常处理 defer, panic, recover

Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,...

亓斌哥哥
2014/09/29
0
0
Go函数—— defer && panic && recover 处理异常

Go函数—— defer && panic && recover 处理异常 Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容...

秋风醉了
2016/07/09
21
0
Go的异常处理 defer, panic, recover

Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,...

blacklovebear
2014/02/09
0
0
Go圣经-学习笔记之defer和异常处理

上一篇 Go圣经-学习笔记之函数值(二) 下一篇 Go圣经-学习笔记之方法 可变参数 形参数量可变的函数称为可变参数函数。使用最多的可变参数函数标准库:。 在声明可变参数函数时,需要在参数列表...

cdh0805010
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么 vue 默认导出的是 vue.common.js,它和 vue.js 的区别在哪里,又有什么关系?

这个问题在囧克斯的博客中有提到。 Vue 最早会打包生成三个文件,一个是 runtime only 的文件 vue.common.js,一个是 compiler only 的文件 compiler.js,一个是 runtime + compiler 的文件 ...

粒子数反转
24分钟前
3
0
php正则表达式替换图片地址

<?php /*PHP正则提取图片img标记中的任意属性*/ $str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性<......

mdoo
28分钟前
2
0
一个简单的系统监控脚本

一个简单的系统信息监控脚本 #!/bin/bash# DATE:20181018# System monitor by Kxvzinterval=5while :doecho '==========================================================...

Kxvz
31分钟前
2
0
七牛云助你度寒冬 | 每天 10:24, 新用户抢全额免单

近年来,中美贸易战、股市暴跌、房地产变天、人民币贬值等等,企业艰难生存于冰川夹缝之中,融资发展难上加难。 凛冬将至, 七牛云特此推出免单好礼,为新用户(2018 年 10 月 10 日后新注册...

七牛云
32分钟前
1
0
Echarts X轴刻度标签换行显示

xAxis: [ { 'type':'category', splitLine: {show: false}, axisLabel: { show: true,//是否显示 interval:0,//强制显示 ......

郭周园
37分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部