Go 的异常捕捉问题
```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不能同时在 := 的左边,好难受。
有什么科学的方法?
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不能同时在 := 的左边,好难受。
有什么科学的方法?
...全文
相关推荐
DFVSSDK_Golang:光纤振动系统SDK
一旦检测到异常,会立即通知开发者进行排查和处理。3.
reinvest
这种策略在加密货币领域尤其常见,因为市场波动大,持续投资可以捕捉到潜在的增长机会。Go语言,又称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。
go-zero-master
**测试与调试**:Go 语言的强类型特性使得代码缺陷在编译阶段就能被捕捉,Go-Zero-Master 进一步提供了丰富的测试工具和示例,以确保服务的健壮性。10.
go7007-usb.rar_V2
go7007是一个硬件视频捕捉芯片,常用于USB视频设备,如网络摄像头或者电视调谐器。它支持多种视频格式和压缩标准,使得用户可以在计算机上捕获和处理视频流。
开源项目-dvyukov-go-fuzz.zip
在Go-fuzz项目中,dvyukov为Go编程语言提供了强大的模糊测试框架,帮助开发者发现其代码中的潜在问题,特别是那些难以通过常规测试手段捕捉到的边界条件和异常情况。


其他技术讨论专区
