前回、Pythonプログラムのエラーと例外についてまとめました。
例えば、間違えて関数に数字以外の文字列を入力した場合はエラーが発生し、プログラムが終了します。
今回は例外処理に対して、想定外のエラーが発生した時に適切に処理ができるようなプログラムの作り方を紹介します。
「Python」例外エラーの発生に値する適切な処理をするプログラムの作成
以下では、Pythonのプログラムに、「平成」を入力した際に、「heisei_command()」関数が実行されます。
プログラム実行時に「平成,2000」とコロン「,」で平成と数値(西暦)を入力します。
実行結果により、西暦を計算し、平成生まれなのかそうでないのかを判断します。
このプログラムの中で、「split()メソッド」で分割し、「year_str」変数には数値がはい入ります。
ここで、数値以外の「文字列」を入力すると、「ValueError」が発生します。
この「ValueError」が発生すると、例外で発生したエラーメッセージを返す処理を実行します。
例外処理のプログラミング「try文」
例外処理では、「try文」を使用して書きます。
以下のプログラムでは、「平成」という文字列と数値(西暦)をコロン「,」区切りで入力することで、その数値(西暦)を平成何年かを出力します。
まずは以下のように「try文」を作成し、try文の中で例外「ValueError」が発生した場合は、メッセージにエラーを示す文字列を指定して返すプログラムとなります。
※ reigai_test.py
def heisei_command(command): heisei, year_str = command.split(',') try: year = int(year_str) if year >= 1989: heisei_year = year - 1988 response = '西暦{}年は、平成{}年です。'.format(year, heisei_year) else: response = '西暦{}年は、平成ではありません。'.format(year) except ValueError: response = '数値を入力してください。' return response while True: command = input('bot> ') response = '' if '平成' in command: response = heisei_command(command) if 'さようなら' in command: print('サヨウナラ') break if not response: response = '何を言っているのかわからない' print(response)
※ 実行結果
$ python3 reigai_test.py bot> 平成,元年 数値を入力してください。 bot> 平成,3年 数値を入力してください。 bot> 平成,2000 西暦2000年は、平成12年です。 bot> 平成,1990 西暦1990年は、平成2年です。 bot> さようなら サヨウナラ $
例外処理は事前にチェックできるエラーケースを把握してif文などで対処するようにしましょう。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す