💎

[Golang] Error handeling for specific errors like not found or unique?

2021/12/20に公開

概要

Golang ent で、error handlingの仕方を調べた。

実装

// Constraint errors:
usr, err := client.User.Create().
    SetName("Ariel").
    Save(ctx)
if ent.IsConstraintError(err) {
    // "name" is not unique.
}

// NotFound errors:
usr, err := client.Get(ctx, id)
if ent.IsNotFound(err) {
    // user was not found.
}

日本語documentには乗ってなかった。
検索したら、issueがヒットした。
詳細はgodocで確認。

参考

https://pkg.go.dev/github.com/paulvollmer/robotstxt-datastore/server/ent#IsConstraintError
https://github.com/ent/ent/issues/539

Discussion