実行時エラー
runtime error
実行時に起こるエラー
要は「実行時エラー」=「未定な状態に到達」ではないよね?
実行時エラーは、実行時に補足できるものと補足できないものがある
つまり実行時エラーとは、以下の集合?
実行時の検査によるエラー
例えば添字アクセスのやつ
これは動的に検査され、無理なら例外を返す
じゃあPythonでtry..catchとかを書く意味は?実行時エラーで捕捉するのとはどうちがう #?? 未定義な状態
コレを起こすコード例を知りたいmrsekut.icon
おそらくC,C++のコードになると思う
まじで詰み、どうしようもない、再起動してくれ
プログラムが自分で解決できるエラーは含まれない
プログラムが落ちる?
例外
大まかな分類と例
値が未定義な変数を参照することによるエラー
NullPointerExceptionとか
「操作」と「値」の種類の不整合によるエラー
演算+の引数が整数でないとか、ifの条件部がboolでないとか
match, switch式で該当するパターンが一つも存在しないことによるエラー
無限の関数呼び出しなどによるエラー
無限ループとか
実行時エラーを防ぐ機構
「エラー」と「例外」の違い
定義は言語によって異なる
エラーは言語処理系の未定義の状態に到達すること
そうなん?mrsekut.icon
どんな動作をするかは起こってみないとわからない
例えばプログラム自体が落ちるとか
メモリが壊れるとか
pythonなどのアレは例外
code:shell
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
ランタイムがエラーメッセージを出せるものは例外だな、たぶん
ガチのエラーはプログラムが落ちる
例えばPythonインタプリタならそれ自体が落ちてシェルが$ の状態になるのでは
monkey-nimでは簡単に起こる
参考