このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
appendix:エラーのお話 [2023/02/07 16:17] fumble 作成 |
appendix:エラーのお話 [2023/02/07 16:32] (現在) fumble |
||
---|---|---|---|
行 3: | 行 3: | ||
エラーを見れるようになる必要はないですがエラーに含まれている情報でどこが重要なのかを知れば、他者に聞くときに渡すべき情報がどれかのの判断の一助になるかもしれません。\\ | エラーを見れるようになる必要はないですがエラーに含まれている情報でどこが重要なのかを知れば、他者に聞くときに渡すべき情報がどれかのの判断の一助になるかもしれません。\\ | ||
- | ====コンソール((黒いあの画面))に出力されるエラー==== | + | ====コンソール(黒いあの画面)に出力されるエラー==== |
まず大きく2種類のパターンがあります。 | まず大きく2種類のパターンがあります。 | ||
* 個々の処理がエラーを捕まえて自分でエラーメッセージを出しているもの。 | * 個々の処理がエラーを捕まえて自分でエラーメッセージを出しているもの。 | ||
- | * 個々のエラー処理が捕まえておらず、システム((Unityの例外処理機構))が出しているもの。 | + | * 個々のエラー処理が例外を捕まえておらず、システム((Unityの例外処理機構))が出しているもの。 |
+ | |||
+ | 前者の「個々の処理がエラーを捕まえて自分でエラーメッセージを出している」のほうは、どういった動作をするかはその「個々の処理」次第であるため非常に有意義な情報を出してくれる場合もあれば、まったくなにも出さなかったり誤った情報を出す場合などもあります。\\ | ||
+ | \\ | ||
+ | 後者のシステムが出すものは、決まった内容を出してきます。\\ | ||
+ | |||
+ | ====個々の処理が出しているエラー==== | ||
+ | 役に立つ情報を出している場合もあれば、そもそも何が出しているのかわからないものもあります。\\ | ||
+ | |||
+ | ====システム(Unityの例外処理機構)が出しているエラー==== | ||
+ | こちらは決まったパターンで出力されます。\\ | ||
+ | |||
+ | ===エラー(例外)の種類=== | ||
+ | 何がまずかったのかを表しているためヒントになることが多いですが、よくある例外だと「まぁそうだろうね」ぐらいでしかない場合も。\\ | ||
+ | ==よくある例外== | ||
+ | * NullReferenceException | ||
+ | いわゆる「ぬるぽ」本来あるべきもの、本来取得できるものなどがない状態でそれを操作した場合など。\\ | ||
+ | ほとんどの場合、操作することが問題ではなくあるべきものがない、取得できるはずのものが取得できてないないことが問題。\\ | ||
+ | 直前にファイルが読めてないとか出ている場合はおそらくそれが原因。\\ | ||
+ | * FileNotFoundException | ||
+ | 名前通りでファイルが見つからない場合に発生する。\\ | ||
+ | ただしデータファイルに限らずDLLなどがない場合もこれになる場合があるので要注意。\\ | ||
+ | * MissingFieldException | ||
+ | 本来あるはずのものがない場合。((ある型にあるべきフィールドがない場合。))\\ | ||
+ | 非常によくあるのが" | ||
+ | * TypeLoadException | ||
+ | これもあるはずのものがない場合。((あるべき型がない場合。))\\ | ||
+ | これも同じで" | ||
+ | |||
+ | ===エラーが発生した場所とその経路=== | ||
+ | スタックトレースと呼ばれる処理が呼び出された順序。\\ | ||
+ | どういった流れでどこの処理で発生したかわかるためかなりのヒントになります。\\ | ||
+ | 「場所: | ||