golang 如何处理多种异常

我是 golang 新手一枚。

假设我有一个方法,请求一个第三方的接口并返回结果,这个方法可以产生多个错误:网络错误,状态码错误,解析数据错误,数据状态错误。

在 PHP 和 Python 中,我们可以自定义异常类,轻松处理以上几个错误,但是在 golang 中就比较尴尬了,这个时候,如何优雅的处理这些错误呢?

要根据不同的错误,外层做出不同的逻辑处理。

阅读 1.7k
2 个回答

你应该想说的是“错误”(Error)而非“异常”(Panic),一些语言里它俩的区别比较模糊,但 Golang 里它俩完全不一样。

如何区分错误类型可以看这篇:https://zhuanlan.zhihu.com/p/... 以网络错误举例的,你可以触类旁通应用在所以错误类型上,这也是 Golang 标准库里的做法。

golang通过多返回值来处理错误,一般会返回一个error类型的结果参数,这是一个接口,在工程实践中可以返回自定义实现的error,调用方根据接口定义使用结果断言转成具体的error实现,通过获取错误码来区分不同的异常。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题