質問: a[2] #dには3が入っています。 print(d,f) ``` **実行結果:** ``` エラーが発生。 3 3 ``` エラーは発生しましたが、dにはちゃんと例外発生直前の値が入っている事が確認できます。
回答: > > アプリケーションに何らかの障害が発生するということはありませんか? > > > このtry/exceptのコード片だけについて言えば、ないと思います。 ただし、可読性が下がり、別のバグに起因するIndexErrorがそのtry節内で起こってもexceptで握りつぶしてしまうため修正が困難になり、修正コストが高くなり、保守不能になっていくことが想像できます。 一般的には、そういった「コードへの理解が正確でないために書いた回避コード」を書く状況では、上記のような「保守不能になっていく」というのがあまり時間をかけずに表面化してきます。また、「try/exceptで回避したこと」以外のコードも品質が高くないでしょうから、アプリケーションに障害が発生する可能性は、よく書かれたコードに比べて高いでしょう。 私の経験上、そのようなコードを見掛けたら全体の品質が低い(障害を起こす可能性が高い)と判断します。