タグ

2016年9月4日のブックマーク (2件)

  • Go言語でエラーを書くときに気をつけること - taknb2nchのブログ

    Go言語では例外という概念はなく、ビルトインでerror型というのが用意されています。 type error interface { Error() string } 処理に失敗した場合等は例外を発生させることはできなく、errorを返すという形をとります。 またそのメソッドや関数を実行した側は、戻り値にerrorが含まれている場合はその値がnilかどうかを確認することで処理が成功したのか失敗したのかが分かります。 JavaやC#等では基底クラスのException等を継承して独自の例外を定義して使用することができます。 もちろんGo言語でも以下のようにして簡単に独自のエラーを返すことができます。 errors.New("独自のエラーです。") ダック・タイピングを採用しているGo言語ではError()メソッドを実装しているだけでerror型として判定されます。したがって以下のように書き方

    Go言語でエラーを書くときに気をつけること - taknb2nchのブログ
    tom__bo
    tom__bo 2016/09/04
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん