Go 面试题 004:Go 有异常类型吗?
Go编程时光
共 880字,需浏览 2分钟
· 2021-09-28
大家好,我是明哥。
欢迎大家再次来到 『Go 语言面试题库』 这个专栏
本专栏内容,已经上传 github:https://github.com/iswbm/golang-interview
请大家帮帮忙去点个小 ⭐⭐,在那里我对题库进行了分类整理
在解答这个问题前,有必要对错误和异常做一个解释
错误:指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中 ;
异常:指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情况在人们的意料之外。
在 Go 没有异常类型,只有错误类型(Error)。
一个函数要是想返回错误,通常会使用返回值来表示异常状态,它很像 C语言中的错误码,可逐层返回,直到被处理。
f, err := os.Open("test.txt")
if err != nil {
log.Fatal(err)
}
Go 语言中虽然没有异常的概念,但是却有更为恐怖的 panic ,由于有了 recover,在一定程度上, panic 可以类比做异常。
Golang错误和异常(panic)是可以互相转换的:
错误转异常:比如程序逻辑上尝试请求某个URL,最多尝试三次,尝试三次的过程中请求失败是错误,尝试完第三次还不成功的话,失败就被提升为异常了。
异常转错误:比如panic触发的异常被recover恢复后,将返回值中error类型的变量进行赋值,以便上层函数继续走错误处理流程。
⬇⬇⬇
评论
【送书福利】《Java面试八股文:高频面试题与求职攻略一本通》
先来唠唠最近粉丝面试回来跟我聊天,基本上都提到一个点,在面试过程中八股文占比很高(八股文70%、项目20%、10%算法)除了一些搞算法突出的厂除外。其实现在很多厂八股都是逐渐深入的方式来问,所以大家在学习的过程中,针对一些重点的内容,最好深入去学习,不然还是比较难应对这种追问式的问题。最近刚好从一位
Java后端技术
0
上班的时候,有一群摸鱼搭子非常重要...
上班的时候,有一群摸鱼搭子非常重要!一到上班时间,他们就从四面八方涌进群里冒泡...从八卦聊到股市、从职场聊到乌X兰局势,偶尔还会复读、相亲、battle...然后,下午6点钟准时消失不见...所以你要不要加入我们一起摸鱼?我们有北京、上海、深圳、广州、杭州、武汉、成都、南京等8个城市的摸鱼群,还有
产品经理日记
0
知乎高问:程序员有必要知道为什么做某个功能吗?
将Python客栈设为“星标⭐”第一时间收到最新资讯前言知乎上有一个提问:程序员有必要知道为什么做某个功能吗?↓↓↓今天,我们就这个话题一起来做个讨论。不知道程序员的你,在接到产品经理提的一个需求后,是习惯马上动手开始撸代码呢?还是会先暂停一下,认真思考一会如下一些问题,比如这个需求产生的背景是什么
Python客栈
0
React正在杀死Angular吗?
点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群作者 |Hassan Trabelsi
策划 & 翻译 |张卫滨这是一个老生常谈的争论(在技术时代,这是在所难免的):Angular 对战 React。这就像“先有鸡还是先有蛋”的难题,不过这个问题是针对 Web 开发
前端Q
0
你真的理解 devDependencies 和 dependencies 的区别吗?
点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群作者:井柏然原文:https://juejin.cn/post/7135795969370619918你是否真的理解 devDependencies 和 dependencies 的区别?如果不能确切的回答、理解还停留在模糊的阶段,
前端Q
0
盱眙城区一辆解放牌五小车辆对外转让,有需要的老板跟车主联系。
解放牌五小车辆原厂自卸车,年审及保险最新。无任何事故及违章,正常干活车辆,无毛病,手续齐全,车况良好,价格不高,需要的欢迎看车购买。买好车加满油让你开回家。车辆地址:盱眙天鹅湖附近。车主电话:13770461668潘先生
盱眙老妹
0