Go 的异常捕捉问题

weixin_38058428 2019-09-20 10:52:31
```go
package main

import (
"path/filepath"
)

func main() {

pathA := "D:/pathA/xx"
pathB := "D:/pathB/xx"
absPathA, err := filepath.Abs(pathA)
absPathB, err := filepath.Abs(pathB) //报错,err是一个已经存在的变量,不能在 :=的左边
}

// 如果用下面这种方式

func main() {

pathA := "D:/pathA/xx"
pathB := "D:/pathB/xx"
if absPathA, err := filepath.Abs(pathA); err != nil {
panic(err)
}
if absPathA, err := filepath.Abs(pathA); err != nil {
panic(err)
}
fmt.Println(absPathA) // 错误,absPathA变量未定义,作用域导致
}
```

难道我要为每一个可能的错误创建一个新error变量?我想只用err这一个,但是absPathA,absPathB又是一个新的,问题就是一个未定义的变量和一个已存在的变量err不能同时在 := 的左边,好难受。

有什么科学的方法?
...全文
19 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38065217 2019-09-20
  • 打赏
  • 举报
回复
先都定义好,然后就不需要用 := 了
weixin_38090265 2019-09-20
  • 打赏
  • 举报
回复
已定义的便变量可以在:= 左边啊
weixin_38100051 2019-09-20
  • 打赏
  • 举报
回复
正解
weixin_38108704 2019-09-20
  • 打赏
  • 举报
回复
var err error var absPathA,absPathB string absPathA, err = filepath.Abs(pathA) absPathB, err = filepath.Abs(pathB)

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧