いつもお世話になっております。
前提・実現したいこと
ファイル処理の例外処理で余計な例外を扱っているのかを知りたいです。
python でファイル書き込みの時のエラー処理を書いていたのですが、実際に動かしてみたときの動作が期待していた動作と異なっていたので、掲題の件を質問させていただきました。
もともとは例外処理のカバレッジを調べるために、ファイル書き込みのエラーを意図的に引き起こすそうとして /dataフォルダを先に削除したのちにopen('/data/test.conf') を使ってFileNotFoundError をキャッチするつもりだったのですが、
実際に動かしてみるとIOError で引っかかるprint() の"IO:"の下の行に下記のエラーメッセージが表示されました。
[Errno 2] No such file or directory '/data/test.conf'
内容としては(おそらくですが) FileNotFoundErrorでキャッチした時のものかと推測しましたが、実際はどうやらIOErrorでキャッチしているようです。
私が最終的に知りたいのは
・FileNotFoundError はIOError に含まれるのでキャッチしなくてもよいか
・もしくはFileNotFoundError はIOError でキャッチしきれないエラーが存在しているため、やはりキャッチする必要がある
です。
初歩的なことがわかっていないだけなのかもしれませんが、ご教示いただけると幸いです。
該当のソースコード
Python
1shutil.rmtree("/data") 2try: 3 output_file = open('/data/test.conf', 'w', encoding='utf-8') 4 #処理 5except IOError as e: 6 print("IO:") 7 print(e) 8except FileNotFoundError as e: 9 print("FNF:") 10 print(e) 11finally: 12 output_file.close()
補足情報(FW/ツールのバージョンなど)
python3.5.2
pleiades eclipse photon
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/12 07:06