Coding - Kaggle - Software

エラーハンドリング(例外処理)

 今回はPythonにおける例外エラーのハンドリングについてです。誰でも自分がコードを書く際は「問題ない」と信じて書くものですが、自分は完璧ではないのでエラーハンドリング処理を込めてコードを書くように励行しましょう。

Pythonでの例外エラー処理は「try, except, else, finally」の4つを使います。「else, finally」は省略可能です。

chara = 'test'
num = 123

try:  #例外エラーが発生するかもしれないが実行したい

    print(chara+num)  #string型であるべきなのにnumがint型になっているのでエラー

except:  #例外エラーの発生があった場合

    print('You need make num to String!')

else:  #例外エラーの発生がなかった場合

    print('No error')

finally:  #例外エラーの発生の有無によらず

    print('ending code')

# 出力結果は下記の通りになる
# You need make num to String!
# ending code

なお、それぞれのケースで実行する内容が空欄だと構文エラー(Syntax Error)が出ます。ケース自体は存在させるが、特に何も実行させない場合は「pass」と記載します。具体的には下記の通りです。

chara = 'test'
num = 123

try:  #例外エラーが発生するかもしれないが実行したい

    print(chara+num)  #string型であるべきなのにnumがint型になっているのでエラー

except:  #例外エラーの発生があった場合

    pass

# 出力結果は下記の通りになる
# You need make num to String!
# ending code

 exceptの後ろに特定のエラーを指定することで、特定のエラーを指し示してexceptすることもできます。


 エラーハンドリングはKaggleコンペでも非常に重要です。Kaggleコンペのプライベートテストでは、データ量が増えることも影響大ですが、意図的にエラーを出させる非常にトリッキーなデータも混ぜられている様子です。

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments