問題タブ [nullpointerexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ゲッターのチェーンで NullPointerException をトレースする方法
次のような呼び出しで NullPointerException を取得した場合:
次のようなかなり役に立たない例外テキストが表示されます。
どの呼び出しが実際に null を返したかを見つけるのはかなり難しく、コードを次のようにリファクタリングしていることがよくあります。
そして、どの行を探すべきかを教えてくれるよりわかりやすい NullPointerException を待ちます。
ゲッターを連結するのは悪いスタイルであり、とにかく避けるべきだと主張する人もいるかもしれませんが、私の質問は次のとおりです。コードを変更せずにバグを見つけることはできますか?
ヒント: 私は Eclipse を使用しており、デバッガーが何であるかは知っていますが、それを問題に適用する方法がわかりません。
回答に対する私の結論:
いくつかの回答は、ゲッターを次々とチェーンするべきではないと教えてくれました。いくつかの回答は、そのアドバイスに従わなかった場合にコードをデバッグする方法を示しました。
いつゲッターをチェーンするかを正確に教えてくれた答えを受け入れました:
- null を返すことができない場合は、好きなだけ連鎖させます。!= null をチェックする必要はありません。NullPointerExceptions について心配する必要はありません (連鎖は依然としてデメテルの法則に違反していることに注意してください。しかし、私はそれを受け入れることができます) 。
- それらが null を返す可能性がある場合は、絶対に連鎖させず、null を返す可能性のあるそれぞれについて null 値のチェックを実行
これにより、実際のデバッグに関する適切なアドバイスは役に立たなくなります。
java - JavaでNullPointerExceptionを回避するために配列要素がnullかどうかを確認する方法
null
オブジェクトの部分的に nfilled 配列があり、それらを反復処理するときに、選択したオブジェクトが他の操作を行う前にあるかどうかを確認しようとしました。ただし、それnull
がNullPointerException
. array.length
すべてのnull
要素も含まれます。null
配列内の要素をどのようにチェックしますか? たとえば、次のコードでは、NPE がスローされます。
java - ヌルポインタ例外JLabel
ラベルでこれを実行しようとすると、なぜNullPointerExceptionが発生するのですか?
このように2本の弦を連結できないからですか?
理想的には、必要に応じて正しくインクリメントできるように、ラベルをプレーヤーのスコアとして設定しようとしています。
これが私の例外スタックダンプです:
java - HashMap の put メソッド使用時の NullPointerException
次のコードは私にNullPointerException
. 問題は次の行にあります。
奇妙なのは、上記の行なしでこのコードを実行し、呼び出しが期待どおりに機能することです。つまり、csv ファイルの要素が返されますnextLine[0]
。コードでnextLine[6]
を宣言して初期化しますHashMap
メソッドの早い段階で
vb.net - VB コードからの奇妙なヌル ポインター例外
Windows Vista x64 + VSTS 2008 を使用しています。 以下の URL (この記事の関連サンプル コード) からサンプル プログラムをデバッグしています。
しかし、ファイルへの書き込みボタンを押すと、ヌルポインター例外が発生しました。これが私の画面のスナップショットです。
http://tinypic.com/view.php?pic=14cbfop&s=5
何が間違っているのですか?
EDIT1: ソースコード全体です。
java - ImageIO.readを使用したNullPointerException
画像ファイルを読み込もうとしているときにNPEを取得しましたが、その理由を一生理解できません。これが私の行です:
imgPathは基本的に有効であることが保証されており、ここに到達する直前にサーバーからファイルをコピーします。その行に到達すると、次のスタックトレースを取得します。
また、これは私の出力ウィンドウにスローされます:
ICOFileを作成できません:バイトを読み取れません:2
特にFileコンストラクターが成功しているので、何が起こっているのかわかりません。同様の問題を抱えている人は誰もいないようです。誰かアイデアはありますか?(それが違いを生む場合はJava 5)
java - サーブレットスタックトレースにクラスの「不明なソース」が表示されるのはなぜですか?
現在、ApacheTomcat5.5.16を使用してLuceneベースの検索APIを提供しています。
最近、サーブレットクラス内でいくつかのNullPointerExceptionsが発生しています。クラスはと呼ばれcom.my_company.search.servlet.SearchServlet
ます。
特定の種類の入力を使用すると、定期的にNullPointerExceptionを作成できますが、正確にどこにあるかを把握するのに問題があります。
StackTraceは、バグがここで発生していることを示しています。
com.my_company.search.servlet.SearchServlet.doGet(Unknown Source)
このクラスのソースファイルと.classファイルはすべて次の場所にあります。
$TOMCAT_HOME/webapps/my_servlet/WEB-INF/classes/com/my_company/search/servlet/
私の質問は、Tomcatにもっと説明的なエラーの場所を提供させるにはどうすればよいですか?
java - Java で NullPointerException を適切に回避する
次の行を検討してください。
明らかに、この行は潜在的なバグであり、属性がバグである可能性がnull
あり、NullPointerException
. したがって、次の 2 つの選択肢のいずれかにリファクタリングする必要があります。
最初のオプション:
2 番目のオプション:
最初のオプションは読みにくいですが、より簡潔です。2 番目のオプションは意図は明確ですが、冗長です。
読みやすさの観点から、どのオプションを好みますか?