タグ

exception-handlingとzennに関するnabinnoのブックマーク (2)

  • Goとエラーハンドリング慣習について

    エラー返値が無用な条件 関数ないしメソッドの実装がオンメモリ操作のみで完結 将来も(メモリ以外の)I/O操作は追加されることがない 逆にいうと上記の条件のいずれかが達成できない可能性がある関数やメソッドはエラー返値を付与すべき。 返値エラー型はerrorで統一する 返すエラーがerrorインターフェース型でなければそのエラーは正常にハンドリングできません。またerrorインターフェースを満たす別の返値型で返してerrorインターフェース型で受け取るのも後述のトラブルの元です。 Goの実装方針に「インターフェースで利用するものもコンストラクター相当では構造体ポインタで返す」というものがありますがコンストラクタを呼ぶ側は元型にアクセスすることが多いのでこういう方針になっています。が、エラー値に関しては元型を意識せずに利用可能にするという役割があって、この実装方針は当てはまりません。 エラーチェ

    Goとエラーハンドリング慣習について
  • [AWS]boto3のエラーハンドリング(翻訳)とベストプラクティス

    業務でboto3を使う機会があり、エラーハンドリングのベストプラクティスを知りたかったので、一先ず公式ドキュメントを読んでみることにしました。 日語訳したものを共有致します。 原文↓ ベストプラクティス 実装者としては以下内容のみ知っていれば実装は可能です。さらに詳しく知りたい場合、翻訳全文を参考にしてください。 Boto3を使用するときに発生する例外は、botocoreの例外とAWSサービスの例外のどちらかである。 botocore の例外は以下の方法でキャッチする。 import botocore import boto3 client = boto3.client('aws_service_name') try: client.some_api_call(SomeParam='some_param') except botocore.exceptions.ClientError a

    [AWS]boto3のエラーハンドリング(翻訳)とベストプラクティス
  • 1