【じっこうじえらー】

実行時エラー とは?

公開:
💡 書き方は合っていても、動かす途中でつまずく

プログラムを実行しているときに発生するエラー。構文が正しくても、入力値や実行時の状態によって処理に失敗することがあります。

📌 このページのポイント
同じ式でも、入力で結果が変わる Pythonの例:10 / n 入力 n = 2 入力 n = 0 10 / 2 10 / 0 ! 5.0 ZeroDivisionError どちらも構文は正しい。右は計算時に失敗 例外への対処があれば継続できる場合もある
Pythonの除算で入力だけを変えた比較です。右の例は、式を読む段階ではなく計算する段階でエラーになります。
ひよこ ひよこ
書き方が正しいプログラムでも、エラーになるの?
ペンギン先生 ペンギン先生
なるよ。構文のルールに合っていても、実際の値では計算できないことがあるんだ。こうした、プログラムを動かしているときに起きるエラーを実行時エラーと呼ぶよ。
ひよこ ひよこ
同じコードなのに、うまくいく日と失敗する日があるの?
ペンギン先生 ペンギン先生
入力が違えば起こりうるね。Pythonの10 / nは、nが2なら5.0になる。でもnが0ならZeroDivisionErrorという例外になるんだ。式の書き方ではなく、その時点の値が関係しているよ。
ひよこ ひよこ
構文エラーとはどう見分けるの?
ペンギン先生 ペンギン先生
Pythonで10 /とだけ書けば、式が未完成なのでSyntaxErrorになるよ。10 / 0は式として読めるけれど、計算時に失敗する。まずはエラーの種類とメッセージを見て、入力とコードを確かめるんだ。
ひよこ ひよこ
実行時エラーが出たら、必ずアプリ全部が止まるの?
ペンギン先生 ペンギン先生
必ずではないよ。Pythonなら対象の例外を捕捉して、入力をやり直してもらう処理などを書ける。ただし捕まえるだけで失敗した計算が成功するわけではないし、対処する処理がなければ実行はエラーメッセージとともに止まるんだ。
もっと詳しく知りたい人へ

PythonのRuntimeErrorという名前は、実行時エラーすべてのこと?

いいえ。RuntimeErrorはPythonの特定の例外クラス名で、ほかの分類に当てはまらないエラーなどに使われます。実行中のゼロ除算はZeroDivisionError、定義していない名前の使用はNameErrorです。一般的な「実行時エラー」と、画面に表示された具体的な例外名を分けて読みます。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「実行時エラー」って出てきたら「プログラムを動かしているときに起きるエラー」と思えればだいたいOK!
📖 おまけ:英語の意味
「Runtime Error」 = 実行時のエラー
💬 Runtimeは「実行時」という意味で、プログラムを動かしているときのエラーを指す言葉だよ

参考資料

← 用語集にもどる