プログラム実行時のエラーを回避する方法 マインクラフト&Python

エラーを発生させ例外処理をした結果。マインクラフト&Python マインクラフト+Python
マインクラフト+Python

前回、前々回の記事では、Pythonプログラムにパラメータを与えて実行する方法を解説しました。
しかし、もしパラメータを与えずに実行、または数字であるべきパラメータを文字にして実行した場合は、チャットエリアにエラーメッセージが表示されていましたよね。
こんなエラーが出ていたはずです。

[ERR] TraceBack (most recent call last):
[ERR]   File “road2.py”, line 20, in <module>
[ERR]     length_number = params[1]
[ERR] IndexError: list index out of range

 

このようなエラーメッセージが表示されたら少し格好悪いので、適切に回避する方法を紹介しましょう。

エラーが発生したときの回避方法

Pythonプログラムを実行してエラーが発生したら「例外処理」というプログラムに移動する方法を、これから紹介します。
「例外処理」とは、例外、つまり「正常ではない状態のこと」を指しますので、簡単に言うとエラーが発生している状態を意味しています。

例外処理(エラー処理)をおこなうプログラムの流れを日本語で説明すると

  1. 今からプログラムの実行を試します
  2. エラーが発生するかもしれないプログラムを実行します
  3. もしエラーが発生した場合は
  4. エラー発生時用のプログラムを実行します

それをPythonプログラムで書くと、このようになります。
ご自身の環境で動かしてみたい場合は、以下の場所に保存してください。
ファイルパス(Macの場合)
/Users/ユーザ名/Library/Application Support/minecraft/mcpipy/error.py

このプログラムを動かしてみる場合は、以下のコマンドをチャット入力してください。

/py error

上のプログラムでは「try」と「except」という命令が書かれていますね。
try は日本語で「試してみる」という意味で、
except は日本語で「例外」という意味で、つまりエラー発生時のことです。

「try」から始まる部分をお試しで実行してみて、もし処理の途中でエラーが発生したら「except」から始まるプログラムに移動。
そしてエラーが発生したとき専用のプログラムが動き出すという流れです。
火災が発生したときにだけ天井から水が吹き出てくるような、そんな仕組みですね。

このプログラムは自分の好きなタイミングでエラーを発生させる命令で、プログラムの動作を確認するときや、何らかの異常を検知したときに利用します。

これはプログラムの処理を強制的に終了する命令で、この命令が実行された以降のプログラムは動きません。

/py error

のコマンドをチャット入力で実行すると、Pythonプログラム内でエラーが発生し、以下のような結果が得られるでしょう。

エラーを発生させ例外処理をした結果。マインクラフト&Python

もしエラーを発生させない実験をしたい場合は、わざとエラーを発生させている22行めをコメントアウトにして実行してみるとうまくゆくでしょう。
コメントアウトとは行単位でプログラムを無効にすることであり、# 記号を用います。

Pythonプログラムをこの状態にして上書き保存し、以下のコマンド

/py error

を実行した結果、先ほどとチャットメッセージの内容が変わったことに気づくはずです。

エラーを発生させずに例外処理を回避した結果。マインクラフト&Python

ここではエラーが発生した場合の処理と、エラーが発生しなかった場合の処理の、命令の分け方を紹介しました。
次の記事ではこのエラー処理を応用して、パラメータのエラーが発生した場合のプログラムの書き方を紹介してゆきます。


タイトルとURLをコピーしました