Go 编程中的错误处理与并发基础
1. Go 代码中的错误处理
在 Go 语言编程中,错误处理至关重要。最初的代码实现可能存在不足,例如在处理无效纬度时会产生两条日志,且会丢失部分关键信息,像无法明确是源坐标还是目标坐标的 validateCoordinates 调用失败。
为了解决这个问题,我们可以使用 Go 1.13 的错误包装功能。以下是重写后的代码示例:
func GetRoute(srcLat, srcLng, dstLat, dstLng float32) (Route, error) {
err := validateCoordinates(srcLat, srcLng)
if err != nil {
return Route{},
fmt.Errorf("failed to validate source coordinates: %w",
err)
}
err = validateCoordinates(dstLat, dstLng)
if err != nil {
return Route{},
fmt.Errorf("failed to validate target coordinates: %w",
err)
}
return getRoute(srcLat, srcLng, dstLat, dstLng)
}
通过这种方式,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



