1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【Python入門】エラーが起きた時に行うべき例外処理の仕方

【Python入門】
Pocket

プログラミングをしていると必ずと言っていいほどエラーが起きます。数字の足し算をしようとしたら片方が文字だった、ファイルを開くのに失敗した、などです。そのため、プログラミングではエラーが起きた際に現在の処理を中断して別の処理を行う「例外処理」が欠かせない物となっています。

今回はpythonで例外処理を行う方法を説明します。

try-exceptで例外をつかむ

Pythonで例外処理を行うにはtry-exceptを使用します。try-exceptの使い方は以下のとおりです。

まず、tryブロックの中に例外(エラー)が起きるかもしれない処理を書きます。その後、exceptの中に例外が起きた際に行う処理を書きます。こうすることで、例外が起きるとそこで処理が中断され、exceptの中の処理が実行されます。

exceptの後ろに例外のタイプを書くことで特定の例外の時だけ処理を行うことができますが、例外のタイプを省略し、すべての例外で同じように処理することもできます。

例として次のようなプログラムがあるとします。

このプログラムを実行すると次のようなエラーがでます。

このプログラムは本来なら数字同士の足し算をしたかったのに片方が文字になっているためTypeErrorというエラーが起きています。これに対して例外処理を行うと次のようになります。

実行結果

エラー!両方とも数字にしてください。
num1 + num2 = 0

エラーをキャッチし、代わりにexceptブロックの中にある処理を行っています。この例ではわざとエラーが起きるようにしているためコードを見ればすぐにエラーが分かりますし、そもそも大したエラーでもありません。

しかしエラーによっては原因が分かりづらかったり、プログラムがフリーズするなど重大なバグを起こすことがあります。そのため、エラーが発生しそうな場合は必ず例外処理が必要です。

elseで例外が発生しなかった場合の処理を行う

さきほどの例では例外が発生してもprint文が実行されていましたが、例外が発生した場合は計算が行われないのでprintは必要ありませんね。また、例外が発生した場合はtryブロックの中身が実行されないので、いちいち上でanswerを定義しています。これらの手間はelseを使うことで省くことができます。

実行結果

エラー!

elseはif文でもお馴染みです。例外処理で使う場合elseブロックは例外が発生しなかった場合に行う処理です。こうすることで例外が起きず計算が正しく行われた時だけprintを実行するようになりました。

finallyで例外の有無に関係なく処理を行う

exceptには例外が発生した際に行う処理、elseには例外が発生しなかった時に行う処理をそれぞれ記述しました。もし例外の発生に関係なく行いたい処理がある場合はfinallyブロックの中に記述します。

例1:

実行結果

エラー!
計算を終わります。

例2:

実行結果

num1 + num2 = 12
計算を終わります。

例1は例外が発生したとき、例2は例外が発生しなかったときですが、どちらもfinallyブロック内のprint文が実行されているのが分かります。

【おすすめ記事】
【無料で使える】Pythonを勉強できる学習サイト7つ
Pythonの本・参考書の評判
Pythonを学びたい方は必見!おすすめスクールまとめ5選
プログラミング初心者が最速でPythonをマスターする方法

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る