python toolz 4 excepts

先端技術開発の三谷です。

私がよく遭遇するのですが、例えば、 あるアカウントにおいて、EC2インスタンスの、ある特定情報(InstanceId等)を取るプログラムがあった時、そもそも、EC2インスタンスがある必要があります。
もし、EC2インスタンスがない場合にこのプログラムを走らせると、Jsonパースにおいて例外を出してエラー終了するケースがあるのではないかと思います。

通常は、このような場合には条件分岐またはexception handlingをすればよいかとおもいます。
しかし、このような分岐やハンドリング処理を書いていくのは煩わしいです。
“処理をトライしてなければNoneまたは空配列が欲しい”といった単純な要求のケースが多々あるのではと思います。

そのような場合に役立つのが、 excepts です。

簡単に説明しますと、以下のようになります。

これを利用すると、Tryするlambda中に、Try->Except文を書く手間が省けます。
ですが、このままですと、例外発生した場合に、その場所を突き止める必要が出てきた場合に困ります。
ので、私はさらに利用しやすいように、以下のようにしました。

上記を利用した関数の利用の例は、以下のようになるかと思います。

AWSから情報を取得し、特定の情報のみ抽出する。この各過程においての例外分岐の記述を省略しつつ、例外発生時にはログ出力する。
目的を達成させるためのコードを非常にすっきりと記述できたのではと思います。

今回はexceptsを紹介いたしました。