差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
appendix:エラーのお話 [2024/11/05 13:20] fumble |
appendix:エラーのお話 [2024/11/06 18:54] (現在) fumble |
||
---|---|---|---|
行 27: | 行 27: | ||
===エラー(例外)の種類=== | ===エラー(例外)の種類=== | ||
- | 何がまずかったのかを表しているためヒントになることが多いですが、よくある例外だと「まぁそうだろうね」ぐらいでしかない場合も。\\ | + | 何がまずかったのかを表しているためヒントになることが多いですが、よくある例外だと「またいつものか・・・」ぐらいでしかない場合も。\\ |
==よくある例外== | ==よくある例外== | ||
* NullReferenceException | * NullReferenceException | ||
- | いわゆる「ぬるぽ」本来あるべきもの、本来取得できるものなどがない状態でそれを操作した場合など。\\ | + | いわゆる「ぬるぽ」本来あるべきもの、本来取得できるものなどがない状態でそれを操作した場合など。\\ |
- | ほとんどの場合、操作することが問題ではなくあるべきものがない、取得できるはずのものが取得できてないないことが問題。\\ | + | nullが専門用語なので一般の人にはnullを参照した?どういう意味?ってなる。\\ |
- | 直前にファイルが読めてないとか出ている場合はおそらくそれが原因。\\ | + | この「ぬるぽ」は「ぬるぽ」した処理が問題ではなく((エラーを適切に処理していないという意味では問題かもしれないが。))あるべきものがない、取得できるはずのものが取得できてないないことが問題。\\ |
+ | 直前にファイルが読めてないとか出ている場合はおそらくそれが原因。\\ | ||
+ | よくあるのはDLCの色変えMod等でDLCを持ってなくてModelが無いとか。\\ | ||
* FileNotFoundException | * FileNotFoundException | ||
- | 名前通りでファイルが見つからない場合に発生する。\\ | + | 名前通りでファイルが見つからない場合に発生する。\\ |
- | ただしデータファイルに限らずDLLなどがない場合もこれになる場合があるので要注意。\\ | + | ただしデータファイルに限らずDLLなどがない場合もこれになる場合があるので要注意。\\ |
- | * MissingFieldException | + | DLLの場合はAがBを参照していて、BがCを参照している用な状態で、Cが無いときもAの処理で出たりする。\\ |
- | 本来あるはずのものがない場合。((ある型にあるべきフィールドがない場合。))\\ | + | |
- | 非常によくあるのが" | + | |
* TypeLoadException | * TypeLoadException | ||
- | これもあるはずのものがない場合。((あるべき型がない場合。))\\ | + | 本来あるはずのType(型)((専門用語「型(かた)」例えばMaid型なら、メイドさんを表すための定義))、がない場合。\\ |
- | これも同じで"Slot" | + | * MissingFieldException |
+ | これもあるはずのField(フィールド)がない場合。((Fieldも専門用語、型にある値を格納する箇所。例えばさっきのメイドさんの例であれば名前とか。(実際は入れ子になっていてMaid.m_Status.firstName_) | ||
+ | |||
+ | 非常によくあるのが"TBody.goSlot" | ||
+ | これが出る場合は、COM3D2版とCOM3D2.5版の取り違えとか、オダメのバージョンがプラグインの想定するバージョン((バージョンアップで追加されたものが無いとか))でないかあたりを確認する。 | ||
===スタックトレース=== | ===スタックトレース=== | ||
行 51: | 行 55: | ||
ただし、エラー発生に至るまでの処理がわかるので、その処理を行ったプラグインがぁゃιぃと言うような見当を付けることは出来ます。\\ | ただし、エラー発生に至るまでの処理がわかるので、その処理を行ったプラグインがぁゃιぃと言うような見当を付けることは出来ます。\\ | ||
- | 例外発生時にスタックトレースを出力せずに「エラー」とかだけ出すプラグインとかがあると、ログからエラー箇所を特定するのが困難に。 | + | 例外発生時にスタックトレースを出力せずに「エラー」とかだけ出すプラグインとかがあると、ログからエラー箇所を特定するのが困難に。\\ |
- | (環境を考慮したスタックトレースプラグインを入れると、Unityのログ出力の際のスタックトレースを出力するので原因箇所が特定出来るかも?) | + | (環境を考慮したスタックトレースプラグイン((メイドいぢりのUnityログを有効にしても同様の効果あり。))を入れると、Unityのログ出力の際のスタックトレースを出力するので原因箇所が特定出来るかも?) |
===バージョン不一致=== | ===バージョン不一致=== |