go语言异常处理

序言

异常是一个很重要的语言特性,go也支持异常,但是要支持的更加简洁。怎么学习go的异常,一是学习go的范式,二是学习go和java对比。

go的范式

在C语言中,是怎么返回异常的,是使用一个全局区,保存异常,当异常发生是,用geterror去获取异常。go借鉴了这种做法。

在go中,是这么干的:

func getsomething() (string, error) {
  return "test", errors.New("error")
}

那么,调用

if v, err = getsomething(); err != nil {
  // do something
}

首先,和C一样,非常熟悉吧,而且非常简洁,特别注意的是,上面这是go对于异常的一个范式,go的函数库基本都在这么用。

panic和recover

和java要对比一下异常处理

try{
    // do something
} catch(Exception e) {
   // do something
}

首先,go抛出异常使用

panic(errors.New("error")

go捕获异常处理呢

func getsomething() (string, error) {
  def func recovers() {
    if err := recover(); error != nil{
    // do something  
   }()
  // do something
  panic(errors.New("error")
  }

上面的代码在抛出异常前会调用defer函数,会把异常截获下来处理掉。看起来干净利落

小结

go的异常处理,学习了C的异常处理,也学习了java面向对象的异常处理,并且简化了,表达起来干净利落。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Go语言的异常机制 ​ Go语言没有传统意义上的错误机制,Go 语言的创始人认为程序员对异常的使用对代...
    団长大人阅读 3,446评论 0 1
  • 异常 不按照我们期望执行的都可以称之为异常 在Go语言中如何处理异常一种是程序发生异常,将异常信息反馈给使用者一种...
    喝酸奶要舔盖__阅读 1,778评论 0 0
  • 异常处理 概念不按我们预期执行的都可以称为异常 1. 一种是程序发生异常时,将异常信息反馈给使用者 创建异常信息有...
    超级皮波9阅读 3,599评论 0 0
  • 异常处理 异常处理分为两种提示用户错误信息但不终止程序直接中断程序 提示错误信息(不终止程序) 方法一 fmt.E...
    AuglyXu阅读 5,616评论 0 0
  • 学习一门语言,第一步搞清楚逻辑判断,第二步就要搞明白其中的错误处理的逻辑。 go 语言支持多值返回,我们一般用来返...
    Brown_阅读 3,738评论 0 50

友情链接更多精彩内容