我希望我的自定义错误显示在 Sentry 中,但它只是获取基础 errorString
类型。
有没有办法改为显示 operationTimeoutError
?
这就是我所做的:
type operationTimeoutError error
var errOperationTimeout operationTimeoutError = errors.New("TIMEOUT")
func foo() {
sentry.CaptureException(errOperationTimeout)
}
答案 0 :(得分:0)
sentry 将在您提供的错误中调用 Error() 方法,作为回报,它将打印底层错误的错误消息。您可以覆盖自定义错误类型的 Error 方法,也可以将其映射到带有您打算在 sentry 中看到的消息的新错误。由于您可能将错误用于其他目的,例如日志记录,我认为映射是更好的选择。
func mapError(err error)error{
switch err.(type){
case operationTimeoutError:
return errors.New("operationTimeoutError")
default:
return err
}
}
sentry.CaptureException(mapError(errOperationTimeout))