





















这是一个创建于 220 天前的主题,其中的信息可能已经有所发展或是发生改变。
现在写的一个函数, 会返回多种错误, 我想的是在一些错误的时候, 值也是部份可用的, 在另一些错误的时候, 值是不可用的
之前看到有说函数返回错误的时候, 应该默认正常返回的值为 nil, 不知道有没有这个说法
1 deplives 2025 年 11 月 6 日返回的值可用那叫错误吗? |
2 YanSeven 2025 年 11 月 6 日这会造成混乱吧。 另外,为什么会出现错误的时候,“值是部分可用”?是函数返回多个值,然后某几个可用吗。 |
3 kneo 2025 年 11 月 6 日 via Android可以,但是你需要文档写清楚,并且考虑返回值类型而不是指针。 |
6 shinonome 2025 年 11 月 6 日@deplives #1 部份可用嘛, 一个结构体从一个网页去解析数据(网站数据更新不及时), 拿到了部份可用数据, 可以勉强进行下一步了, 但是也要分辨下进行处理 |
7 46fo 2025 年 11 月 6 日// Write writes len(b) bytes from b to the File. |
9 shinonome 2025 年 11 月 6 日@YanSeven #2 是一个流程的一个部份, 那个部份的解析能有一些数据, 但会因为时间太早了, 解析不对, 但也有一些可用的数据, 所以想着也返回个错误好让上面知道不是网页不对或网络引起的 |
10 guanzhangzhang 2025 年 11 月 6 日你可以实现两个接口,一个是 Error 接口,另一个是你定义的接口 |
11 PTLin 2025 年 11 月 6 日你需要的是把数据包装到错误中。 func (err *MyErr) Error() string { func test(a int) (int, error) { } |
13 gongym 2025 年 11 月 6 日看起来是很正常的需求,没必要自定义 error 在一个有很多步骤的逻辑中,虽然中间某一步骤报错,但是仍然根据返回的可用值继续进行,这个操作没啥毛病 go 语言挺自由的,没有那么多严格规范 |
14 simon8410 2025 年 11 月 6 日从程序流程角度看,发生错误之后,程序会进入错误处理流程,即使部分结果可用意义也不大了,除非你在错误处理流程中做正常的业务逻辑处理,一般不会这么做,也不推荐。 |
16 gongym 2025 年 11 月 6 日另外就算是报错,也不能简单的定义为流程无法进行 比如有些程序某些接口很容易因为各种原因无法获取到最新的值,选择重试几次,或者忽略此时的错误就可以了。是不会影响其他接口的获取和整体的刷新逻辑的 |
18 InDom 2025 年 11 月 6 日 |
19 looplj 2025 年 11 月 6 日那就别返回错误,因为看起来你的这个场景不是错误,部分失败是一个正常的业务流程。 返回一个 Result 之类的结构,里面定义状态, 成功,失败,部分失败之类的。 |
20 eudore 2025 年 11 月 6 日标准库有示例, 返回值和 error 同时不为空。 |
21 paceewang1 2025 年 11 月 6 日返回 err 了,一般值就认为是失效了,特别是有指针的情况下,但是没有硬性规定,只是一个代码风格问题吧。 |
22 xg62718 2025 年 11 月 6 日不可用! |
24 THESDZ 2025 年 11 月 6 日// 声明类型方便理解 |
25 dobelee 2025 年 11 月 6 日 via iPhone你敢用的话可以。 |
27 proxychains 2025 年 11 月 6 日返回的 err!=nil, 那么该函数应当是不可信的, 因为它内部产生了错误. |
29 everhythm 2025 年 11 月 7 日可以的,如果情况多的话,类似 http status code |
30 willchen 2025 年 11 月 7 日那就不应该用错误,你自己定一个状态码呗 |
31 iseki 2025 年 11 月 20 日 via Android取决于你的设计,Go 对这个看上去没有强烈观点,因为标准库两种选择都有。 |
32 supuwoerc 2025 年 12 月 26 日``` 我遇到的基本都是有错误只有错误会有意义,其余均是 0 值。 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。