在 Go 中取消带有自定义错误的上下文

Tig*_*uev 6 go

我创建了可取消的 Go 上下文,但我需要时不时地取消它。然而,标准的“上下文已取消”错误消息对我来说似乎并没有提供太多信息。我想做一件定制的。但没有明确的方法来做到这一点!当您打开context包源(特别是WithCancel函数)时,您会看到使用了错误,Cancelled但实际上没有理由自定义错误对象不是 的参数CancelFunc

问题是,是否有一种简洁的方法可以在 Go 中创建带有自定义取消错误消息的可取消上下文,而无需复制粘贴WithCancel源代码?

小智 1

也许我误解了你的情况,但听起来CancelCauseFuncWithCancelCause符合要求。

  • 仅供参考;`WithCancelCause` 是在 Go 1.20 中引入的,因此在提出问题时不可用(它似乎确实满足了 OP 的要求)。 (2认同)