36歳が初めてプログラムを勉強してみる(29日目)
今日もpaizaでPythonの勉強しました。
今日学んだことです。
【学んだこと】
・簡単な例外処理(ZeroDivision)について学んだ
・簡単な例外処理(Name)について学んだ
次のようなことをやりました。
【やったこと】
●簡単な例外処理(ZeroDivision)について学んだ
今回は簡単な例外処理(ZeroDivision)について学びました。
例外処理とはプログラム実行時にエラーが発生した時の問題に対応したり、どのようなエラーが発生したかを知らせることができる機能です。
例えば、ゼロで割り算をしてしまったり、不正な引数を指定するとエラー発生します。そのエラーに対処することを例外処理と呼びます。
例外処理を使うには、エラーが発生しそうなプログラムの場所に「try」を入れます。エラーが発生した場合は「except」にどのように対応するかを記載します。
そして、例外が発生した場合、しなかった場合どちらでも最後に処理を行う場合は「finally」に処理を記載します。
【例外処理(ZeroDivision)の方法】
try:
実行するプログラム
#0で割り算した時のエラー処理
except ZeroDivisionError as e:
エラーが発生した時に実行するプログラム
finally:
常に実行させたいプログラム
それでは実際のコードを見ていきましょう。
--コード--
try:
number = 0
answer = 10 / number
print(answer)
except ZeroDivisionError as e:
print("エラー!0で割り算しました")
finally:
print("終了しました")
--出力結果--
エラー!0で割り算しました
終了しました
このコードでは、例外処理のコード「try」の中にエラーを検知したいコードを書き、「except」の中にゼロで割り算した時に「エラー!0で割り算しました」が表示されるように例外処理を書いています。
最後に、常に実行させたいプログラムを「finally」の中に書いています。
その結果、ゼロで割り算をしているため、例外処理が発生しエラー処理のコードが実行され、かつ最後のプログラムも出力されています。
このように、例外処理を使うことによって、エラーが発生してもプログラムを強制停止することなく最後まで処理できることができます。
●簡単な例外処理(Name)について学んだ
先ほどのZeroDivisonはゼロで割り算した場合の例外処理について学びましたので、続いては、ZeroDivison以外の例外処理(Name)についての話しです。
Pythonの例外処理にはZeroDivision以外にもあり、今回は変数名が定義されていない無いときのnameエラーについて学びました。
【例外処理(Name)の方法】
try:
実行するプログラム
#名前が定義されていないときのエラー処理
except NameError as e:
エラーが発生した時に実行するプログラム
finally:
常に実行させたいプログラム
※もし、開発者だけにエラー内容を知らせたい場合は、このように書きます。
import sys
try:
実行するプログラム
#名前が定義されていないときのエラー処理
except NameError as e:
sys.stderr.write("開発者に表示させたい文字列")
finally:
常に実行させたいプログラム
それでは実際のコードを見ていきましょう。
--コード--
try:
number = 1
answer = 10 / number
print(answer2)
except NameError as e:
print("定義されていない変数があります")
finally:
print("終了しました")
--出力結果--
定義されていない変数があります
終了しました
このコードでは、例外処理のコード「try」の中にエラーを検知したいコードを書き、「except」の中に定義されていない変数名がある時に「定義されていない変数があります」が表示されるように例外処理を書いています。
このように、Pythonではエラーが発生した時に、ユーザーや開発者にわかるような処理を書くことができます。
それによって、エラー発生原因が分かりやすくなり、対応しやすくなります。
本日はここまでです。
以上です。ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?