Python入門|エラー時の例外処理try関数の使い方のイメージ画像

Python入門|エラー時の例外処理try関数の使い方

  • 公開日:2020/02/05
  • 更新日:2020/03/02
  • 投稿者:n bit

Pythonでエラーが発生する可能性がある処理の場合に、エラーでプログラムをストップさせず例外処理を実行させて継続させるtry関数の使い方を解説します。

  • Python

この記事は約 分で読めます。(文字)

例外処理を実行するtry関数

自分だけが使うプログラムであればエラー発生時に都度自分で対応すれば大丈夫ですが、不特定多数の方が利用するプログラムの場合はそうもいきません。そのような事態が発生した場合に例外処理を実行してくれるのが今回解説するtry関数です。

例外処理とは

プログラム実行時に想定していない事象が起こりプログラムが正常に最後まで動作しない場合があります。通常であればそのままプログラムがストップしてしまうか、最悪暴走を起こすでしょう。

そのような例外発生時を想定した回避処理を「例外処理」と呼びます。エラーが発生したときの回避処理ですので単純にエラー処理と捉えておいても構いません。

try関数の使い方

それでは早速try関数の使い方を確認していきましょう。

try関数の基本的な使い方は「エラーが発生する可能性がある実行処理」と、その実行処理がエラーを起こした時に行う「回避処理」がセットで必要となります。それぞれの処理を「try」と、「except」の後にインデントをつけて記述するだけです。

いちどコードを確認したほうがわかりやすいでしょう。

try:

# エラーが発生する可能性がある実行処理
except:
# エラー時の処理

「エラーが発生する可能性がある実行処理」はtryのインデントブロック内に記述します。実行処理がエラーを起こしたときの「回避処理」の記述はexceptのインデントブロック内です。

基本的にはこれだけで利用することができます。

「エラーが発生する可能性がある実行処理」が実際にエラーが起こしてしまった場合でもプログラム自体はストップせずexcept内の回避処理へ自動的に移行されます。

正常に実行処理された場合の処理

このほかにもtry関数内の実行処理が正常に行われた場合に続ける処理を「else」を使って記述することができます。「実行処理が正しく終了した場合の処理」の記述は「else」のインデントブロック内です。

try:

# エラーが発生する可能性がある実行処理
except:
# エラー時の処理
else:
# 実行処理が正しく終了した場合の処理
 

正常に実行処理してもしなくても必ず実行される処理

実行処理が正常に終了してもしなくても必ずtry関数の最後に行う処理を記述したい場合は「finally」が使えます。「必ず最後に実行する処理」の記述は「finally」のインデントブロック内です。

try:

# エラーが発生する可能性がある実行処理
except:
# エラー時の処理
finally:
# 実行処理の例外発生の有無にかかわらず必ず最後に実行される処理

try関数のコマンドを全て同時に利用する

ここまで解説したコマンドは全て同時に記述することも可能です。

try:

# エラーが発生する可能性がある実行処理
except:
# エラー時の処理
else:
# 実行処理が正しく終了した場合の処理
finally:
# 実行処理の例外発生の有無にかかわらず必ず最後に実行される処理

以上がtry関数の使い方解説となります。

今日のdot

try関数はアプリケーション作成の場面では必ずと言っていいほど利用することになる関数です。利用ユーザによって想定外の動作がなされた場合でもプログラムをストップさせることなく例外処理に移行させてユーザの手順を変更させたり、プログラム側で自動的にエラーを訂正したりすることができます。

機械学習の前処理などでもよく利用しますのでマスターしておくと良いでしょう。