Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【Go言語】エラーハンドリング

Tomoki Ota
September 11, 2024

 【Go言語】エラーハンドリング

Goのエラーハンドリングについて解説しています。

Tomoki Ota

September 11, 2024
Tweet

More Decks by Tomoki Ota

Other Decks in Programming

Transcript

  1. ଟݴޠʹ͓͚ΔΤϥʔ 19 ର৅ Τϥʔ௨஌ Cݴޠ intͷฦΓ஋ͱͯ͠ΤϥʔΛฦ͢ fopen, java.util.Map.get() ͳͲ ฦΓ஋Λnullableͳܕʹͯ͠ɺΤϥʔ࣌ʹnullΛฦ͢

    goݴޠͳͲ ฦΓ஋ΛΤϥʔͱͷλϓϧʹ͢Δ HaskellͷEitherܕͳͲ ฦΓ஋ΛΤϥʔͱͷ௚࿨ܕʹ͢Δ STLͷstreamͳͲ ΦϒδΣΫτΛΤϥʔঢ়ଶʹ͢Δ Java΍RubyɺPythonͳͲ ྫ֎Λ౤͛Δ
  2. Τϥʔϥοϐϯά·ͱΊ 43 ํ๏ ௥Ճͷจ຺৘ใ ΤϥʔͷϚʔΫ෇͚ ݩͷΤϥʔ͕ར༻Մೳ ΤϥʔΛ௚઀ฦ͢ ❌ ❌ ⭕

    ಠࣗͷΤϥʔܕ ⭕(Τϥʔܕ͕จࣈྻϑΟʔϧ υΛؚΜͰ͍ͨΒ) ⭕ ⭕(ݩͷΤϥʔ͕ެ։͞Ε͍ͯ ΔɺϝιουΛ௨ͯ͠ΞΫη εͰ͖ΔͳΒՄೳ) fmt.Errorfͱ%w ⭕ ❌ ⭕ fmt.Errorfͱ%v ⭕ ❌ ❌
  3. ΤϥʔͷϥΠϒϥϦ 64 cockroach/errors : ਪ঑ɻෳ਺ΤϥʔରԠɻελοΫτϨʔε͋ΓɻݱࡏҰ൪ओྲྀͱͳͬͯΔ pkg/errors : archiveͳͷͰඇਪ঑ errors :

    ඪ४ϥΠϒϥϦɻϥοϐϯά͸ͳ͍ɻελοΫτϨʔεͳ͠ fmtͷErrof : ελοΫτϨʔεͳ͠ɻϰΝʔϒͰϥοϓ͢Δɻ%w, %v xerrors : ଟ͕͘Deprecatedʹͳ͍ͬͯΔͷͰඇਪ঑ hashicorp/go-multierror : ෳ਺ΤϥʔΛѻ͏ͨΊͷϥΠϒϥϦ͕ͩɺඪ४ϥΠϒϥϦͰରԠ͞Εͨ morikuni/failure : Τϥʔίʔυϕʔεͷྫ֎ϋϯυϦϯά go-errors/errors : ෳ਺Τϥʔʹ͸ରԠ͍ͯ͠Δ͕ɺػೳ΋ߋ৽ස౓΋ඍົͳͷͰඇਪ঑ goark/errs : ελοΫτϨʔε͋Γɻߋ৽ස౓͸ඍົ
  4. 71