失敗談 技術

「Python3 メモ」 独自例外クラスからの値取得/変数の内容取得

投稿日:2019年8月27日 更新日:

忙しい。。

この時期でなぜか忙しく、ブログ書いてる暇ない。。のでメモ書き程度。
そして、内容をよく忘れるやつ。。

python3の独自例外クラス

例外クラスからの値取得方法をいつも忘れます。
ある関数orクラスから、別のところに例外を投げた際に、値(エラーコード的な)を渡したいときによく使うんですが。。

サンプルは以下の感じです。

$ vi aa.py
class Error(Exception):

    def __init__(self, resp, args):
        self._args = args
        super().__init__(resp)


def func():
    args = dict(ErrorCode='error')
    raise Error(dict(resp=""), args)


try:
    result = func()
except Error as e:
    print(e)
    print(e.args)
    print(e._args)

$ python3 aa.py
{'resp': ''}
({'resp': ''},)
{'ErrorCode': 'error'}

基本は、”args”で値を取ります。継承したクラスで独自に付け加えたいときの例として、暫定的に”_args”で設定しています。

Pythonで変数の内容を取りたいとき

これもよく忘れる。。以下で変数の内容を取得できます。

print(vars(e))

-失敗談, 技術

執筆者:

関連記事

暗号モードによる処理時間の違いを測定してみた

はじめに 前回、AESで暗号化する実装をしてみた際、知らない暗号モードが増えたなと思いました。 なので、どの暗号モードを使用すべきかの、判定材料の一つとして、代表的な暗号モードの処理速度を簡単に計って …

Pythonのmock.patchを使ってみる

単体テストによく使われるMockライブラリ Pythonで単体テストを行う際、実際のライブラリを使用してしまうと、実際の環境を用意しなければいけません。 例えば、データベースのテストをする際に、データ …

Nuxt.jsのFormで入力/確認/完了フォームを作成してみた(その1)

背景 今回は、Webアプリケーションの、フロントエンド系のお話です。ほとんどの場合、バックエンドなのですが、時々フロントエンドもするんですよね。。 私の派遣先では、入力フォームを以下のように分ける要望 …

Djangoアプリサンプル – 画像ファイルアップロード + 顔モザイク(統合編)

顔モザイク Djangoアプリ 前々回 前回 を統合して、Djangoアプリを作成してみようと思います。 前提インストール 前回、ubuntu 18を前提に記述しましたが、CentOS7(CentOS …

新規プロジェクト参入時に考えること

派遣における労働条件 就業予定時間(変形労働時間やフレックスタイム制の適用を含む)残業の有無と量就業場所(交通ルート、オフィスの配置等)業務の継続予定期間 制服の有無 (背広かどうか)福利厚生施設の有 …

google オプトアウト Click here to opt-out.