审查生成的操作错误包装器

来自 错误包装
Go 1.27 高级 6分钟 找出 4处问题

审查这个生成的操作错误包装器。

包装 execute 的失败并加入操作和任务 ID,保留可匹配的原因,避免重复报告,并在执行成功时返回 nil。

Go
type OpError struct {
    Op  string
    Err error
}

func (e *OpError) Error() string {
    return e.Op + ": " + e.Err.Error()
}

func (e *OpError) Unwrap() error {
    return e.Err
}

func (e *OpError) Is(target error) bool {
    return errors.Is(e.Err, target)
}

func runJob(id string) error {
    err := execute(id)
    if err != nil {
        log.Printf("job %s failed: %v", id, err)
        return &OpError{Op: "run job " + id, Err: err}
    }
    return &OpError{Op: "run job " + id}
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误