当前位置: 首页 > news >正文

英文版网站建设的意义北京seo代理公司

英文版网站建设的意义,北京seo代理公司,海南做网站的,蓟县网站制作作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。 源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign&…

作者:秃秃爱健身,多平台博客专家,某大厂后端开发,个人IP起于源码分析文章 😋。
源码系列专栏:Spring MVC源码系列、Spring Boot源码系列、SpringCloud源码系列(含:Ribbon、Feign)、Nacos源码系列、RocketMQ源码系列、Spring Cloud Gateway使用到源码分析系列、分布式事务Seata使用到源码分析系列、JUC源码系列
基础系列专栏:30天熟悉GO语言(建设中)
码文不易,如果感觉博主的文章还不错,请点赞👍、收藏 ⭐️支持一下博主哇 🙏
联系方式:Saint9768,加我进技术交流群,一起学习进步📚、freedom✈️🌊

文章目录

  • 一、前言
  • 二、异常处理
    • 1)Go的异常处理机制
      • 1、defer关键字
      • 2、recover函数
      • 3、defer + recover 捕获异常示例
    • 2)自定义异常
      • 示例
    • 3)错误中断程序执行
  • 三、总结

一、前言

在这里插入图片描述

Go系列文章:

  1. GO开篇:手握Java走进Golang的世界
  2. 2 Go开发环境搭建、Hello World程序运行
  3. 3 Go编程规约和API包
  4. 4 Go的变量、常量、运算符
  5. 5 Go 基本数据类型
  6. 6 Go 复杂数据类型之指针
  7. 7 Go流程控制之分支结构if、switch
  8. 8 Go流程控制之循环结构for range、goto、break、continue
  9. Go函数全方位解析

Go专栏传送链接:https://blog.csdn.net/saintmm/category_12326997.html

二、异常处理

程序出现错误后,会被中断,无法继续执行。

package mainimport "fmt"func main() {testErrorHandle()fmt.Println("test函数执行成功")
}func testErrorHandle() {num1 := 10num2 := 0result := num1 / num2fmt.Println(result)
}

异常输出如下:
在这里插入图片描述

我们需要通过错误处理/异常捕获,使程序可以继续执行。

1)Go的异常处理机制

go追求代码优雅,通过defer + recover的方式实现异常处理机制,进而提高程序健壮性。

1、defer关键字

在golang中,程序遇到defer关键字,不会立即执行defer后的语句,而是将defer后的语句压入一个栈中,然后继续执行函数后面的逻辑。在函数执行完毕后,从栈中依次取出defer语句执行。

此外,defer关键字遵守FILO的特性,若多个defer函数在同一函数内,执行顺序遵循先进后出原理。即第一个defer函数最后一个被执行。

2、recover函数

recover是Go语言的内置函数,用于在发生 panic 后进行恢复,当 panic 发生时,程序会立即终止并开始执行对应的 recover 代码块。即:用于捕获函数错误。

在这里插入图片描述

3、defer + recover 捕获异常示例

通过recover()函数捕获到了异常,然后defer关键字将异常压入一个栈中,接着继续执行main()函数后面的逻辑,最后执行异常打印出来。

package mainimport "fmt"func main() {testErrorHandle()fmt.Println("test函数执行成功")
}func testErrorHandle() {// 使用defer + recover捕获异常;并直接调用匿名函数defer func() {// 调用recover内置函数捕获错误,如果没有可捕获的错误,recover()函数返回零值:nilerr := recover()if err != nil {fmt.Println("错误被捕获,error is ", err)}}()num1 := 10num2 := 0result := num1 / num2fmt.Println(result)
}

异常捕获:

在这里插入图片描述

2)自定义异常

使用需要调用errors包下的New()函数进行自定义异常,但是New()函数仅支持自定义一个字符串。
在这里插入图片描述

示例

package mainimport ("errors""fmt"
)func main() {err := customException()if err != nil {fmt.Println("自定义错误为:", err)}fmt.Println("test函数执行成功")
}// 函数的返回类型为error
func customException()(err error) {num1 := 10num2 := 0if num2 == 0 {// 抛出自定义异常return errors.New("除数不能为0")} else {// 正常执行result := num1 / num2fmt.Println(result)return nil}
}

控制台输出:
在这里插入图片描述

3)错误中断程序执行

一些场景,我们希望程序出现错误之后,后续代码不再执行,程序中断并退出。

我们可以使用builtin包下的panic()内置函数,中断程序的执行。

示例:

  • 当customException()函数返回异常信息之后,panic()函数将中断main()函数的执行。
package mainimport ("errors""fmt"
)func main() {err := customException()if err != nil {fmt.Println("自定义错误为:", err)// 中断程序的执行panic(err)}fmt.Println("test函数执行成功")
}// 函数的返回类型为error
func customException()(err error) {num1 := 10num2 := 0if num2 == 0 {// 抛出自定义异常return errors.New("除数不能为0")} else {// 正常执行result := num1 / num2fmt.Println(result)return nil}
}

控制台输出:
在这里插入图片描述

三、总结

Go的异常处理分三块:通过defer关键字 + recover()函数捕获异常、通过errors包下的New()函数自定义异常、通过panic()函数中断程序执行。

http://www.hkea.cn/news/434155/

相关文章:

  • 网站建设公司 销量深圳谷歌seo公司
  • 新蔡哪有做网站建设的全球疫情今天最新消息
  • 怎么做平台网站百度seo报价方法
  • 帮人做网站 怎么收费怎么用网络推广
  • 网站排名优化建设百度广告投放技巧
  • 文件服务器网站搭建教程好的竞价托管公司
  • 黑龙江省城乡和住房建设厅网站首页百度链接地址
  • 网站模板修改工具专业seo关键词优化
  • 口碑好的句容网站建设yahoo搜索
  • 深圳网站建设外贸公司价格网络营销的背景和意义
  • 长春网站建设硕成传媒seo快速排名优化公司
  • web网站开发能使用c 吗免费建立个人网站申请
  • 织梦网站修改教程视频网站优化培训学校
  • 南沙区交通和建设局网站中国十大网络销售公司
  • 免费建设网站的方法百度网址大全 官网
  • 手机网站设计制作公司微信推广费用一般多少
  • 建设网站需要什么注册域名费用一般多少钱
  • 女性门户网站源码百度指数功能有哪些
  • 怎么帮公司做网站建设谷歌搜索引擎免费入口 香港
  • 请写出网站建设前期需要做的准备外贸定制网站建设电话
  • 南京门户网站建设网络营销优秀案例
  • 2012服务器如何做网站周口网络推广哪家好
  • 贵阳搜索玩的网站网络舆情软件免费入口
  • 前端自己写代码建网站要花多少钱游戏推广在哪里接活
  • 网站建设中+网页代码nba最新排名东西部
  • 东莞企业建设网站官网有限公司百度推广深圳分公司
  • 海外推广工作内容搜索引擎优化seo是什么
  • wordpress 发短信西安网络优化大的公司
  • dreamweaver个人网站南宁求介绍seo软件
  • 网站常用素材企业培训视频