Golang - 异常处理

Golang - 异常处理

 

Golang - 异常处理

1. 抛异常和处理异常

package main

import "fmt"

//系统抛异常
func test0111() { a := [5]int{0, 1, 2, 3, 4} a[1] = 123 //a[10] =456 index := 10 //index out of range a[index] = 456 } //自己抛 func test222() { getCircleArea(-5) } func getCircleArea(radius float32) (area float32) { if radius < 0 { //自己抛异常 panic("您的智商已下线,半径不能为负数") } return 3.14 * radius * radius } //结合defer func test0333() { //延迟执行匿名函数 //(1)函数正常执行结束了 //(2)报错中断执行 defer func() { //recover():返回程序为什么挂了 if err := recover(); err != nil { fmt.Println(err) } }() getCircleArea(-5) fmt.Println("这里有没有执行") } func test444() { test0333() fmt.Println("GAME OVER") } func main() { //test0111() //test222() //test0333() test444() }

2. 返回异常

package main

import (
   "errors"
   "fmt"
)

func getCircleArea(radius float32) (ret float32, err error) { if radius < 0 { err = errors.New("沙雕,半径不能为负数") return } ret = 3.14 * radius * radius return } func main() { ret, err := getCircleArea(-5) if err != nil { fmt.Println(err) } else { fmt.Println("ret=", ret) } }
 
 

转载于:https://www.cnblogs.com/yanghongtao/p/10970390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值