- - PR -
実行時エラーについて
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-08-07 20:52
すみません。教えてください。
コンパイルは成功しているのですが、実行エラーがでます。 NullPointerException が出るのですが、 Javaコンソールには… java.lang.NullPointerException at MqovM.getHTMLParameter(MqovM.java:409) at MqovM.init(MqovM.java:192) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) と出て コマンド画面には… java.lang.NullPointerException at MqovM.setTextureAllMaterials(MqovM.java:886) at MqovM.init(MqovM.java:143) at sun.applet.AppletPanel.run(AppletPanel.java:417) at java.lang.Thread.run(Thread.java:619) と出ます。 いったいどうなっているのか分りません。 そして、どう考えても(といっても後でミスが見つかるかも)NullPointerではないのです。 こんなことってありますでしょうか。 宜しくお願いします。 | ||||||||
|
投稿日時: 2007-08-07 21:08
コンパイルしていてもコーディングみすがあればNullPointerExceptionが゙投げられます。 エラーログの一番上にある自分の作成したオブジェクトのクラスのxxx行目を見てみましょう。 例外が出た場合は頭で考えてはだめです。 ソースを順をおって確認するか、デバッグToolなどで怪しい箇所でとめてみましょう。 | ||||||||
|
投稿日時: 2007-08-08 07:27
杏さん、返答ありがとうございます。
きっとコーディングミスでしょうね。 私は、エディタとJDKで行っていますが、例えばeclipseを使用すると、コードミスがすぐわかるなんてことはありますでしょうか。 | ||||||||
|
投稿日時: 2007-08-08 09:04
eclipseはコーディングを助けてくれますが コーディングのミスを全て自動的に発見することはできません。 しかし、デバッグも助けてくれるので ミス箇所を発見するのにとても役立ちます。
何が根拠になっての発言かわかりませんけど ソースコードもテストデータもないので確かなことは言えませんが 恐らくNullPointerExceptionの発生する条件をご理解できていない上での 発言なのではないでしょうか。 実装上、throw new NullPointerExceptionをしているのか もしくはインスタンス化されていないオブジェクトに対し インスタンス変数として扱っているとか nullになっているオブジェクトを参照しようとしているとか しているはずです。 | ||||||||
|
投稿日時: 2007-08-08 09:09
統合開発環境 (IDE) で行ってくれるのはせいぜい構文チェックです。(それなりの CASE を使えば少し上のこともできますが) 構文チェックとは、つまりコンパイル (ビルド) が通るかどうか程度のチェックでしかありません。 ゴールデンさんのプログラムは動作していますから構文の間違いはないと言えるでしょう。 コンパイル (ビルド) が通っても自分の意図したとおりに動かなければそれは不具合 (バグ) です。 ゴールデンさんの場合はこれに当たります。 これは構文以外のコーディング ミス (ロジックのミスなど) に起因します。 それらをチェックするには IDE が人工知能を搭載し、仕様書を理解していなければなりません。 あなたが所望しているのは、極端にいえばそういうことだと思いますがいかがでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-08-08 09:33
Java実行環境により例外が発生しているということは、
基本的には実際にそういう問題があるということです。 まずは自分の書いたものに間違いがあるはずだという前提に立ってください。 ・自分で書いたJavaのソースを机上デバッグする ・Appletのようですので、HTML側の設定も間違っていないかを見直す http://www.geocities.co.jp/Playtown-Rook/5070/howto.html 上記2点を実施されることをお勧めします。 | ||||||||
|
投稿日時: 2007-08-08 09:42
その行で使っている変数をSystem.out.printlnしてみるだけでも、
>どう考えても(といっても後でミスが見つかるかも)NullPointerではないのです。 が本当かどうか確認することができます。 頭で「ならないはずだ」と思い込んでいることが、一番怖いのです。 | ||||||||
|
投稿日時: 2007-08-08 11:32
NullPointerExceptionが起きる場合は
該当行にブレークポイントを張って停止させ、 変数の中を確認すれば大抵分かります。 |