可能でしょうか?そのようなユニット化された例外はどのシナリオで投げられることができるか??
準拠のJavaコンパイラおよび準拠のJava仮想マシン、および準拠したDavlik仮想マシンを使用することはできません。 JLSはe
変数は、その場所
どちらかあなたがバグだらけの仮想マシン、バギーデバッガ、またはあなたのIDEの問題を持っているでnull
可能なツールおよび/またはプロセスを構築することはできません。
私があなたの状況にあった場合は、デバッガを今すぐ使用して停止し、コードに昔ながらのトレースプリントを追加することにします。また、ソースからクリーンで完全なビルドを行うことを確認してください。
に考慮すべきもう一つの可能性はJREが実行時に報告された(とデバッガが頼っていること)行番号は、ソースコード内の行番号と並んされていないということです。これは、ビルドプロセスとデプロイプロセスで間違いを犯した場合に発生します。間違いは、ファイルの保存を忘れる、ビルドするのを忘れる、新しいバージョンのアプリケーションをインストールすることを忘れる、IDEをファイルシステムと同期させることを忘れるようなものかもしれません。
理論はこれがthrow null;
または同等のものによって引き起こされるということですFWIWは、水を保持していません。 JLS section 14.18は言う:
は
「Expressionの評価がNULL値を生成し、正常に完了した場合には、クラスのNullPointerExceptionのインスタンスV」を作成し、nullの代わりにスローされます。」
あなたは、そのコンテキストでその文を読めば、理解することは簡単ですが、throw null;
が実際にNullPointerException
をスローすることを明確に言っています。
UPDATE
私はこのSO問題のもう一つのもっともらしい説明が見つかりました:、Exception is NULL always
は基本的に、エミュレートコードはEclipseが認識していない例外がスローされていることを言っているのEclipseエミュレータはnull
を「有益に」代用しています。それはエミュレータのバグのように聞こえる。
'throw null;'? – Dimme
Pls。例外をスローするコードサンプルを追加します。 – Azodious
既に接続されているデバイスとBluetoothInputStream.read()を呼び出すだけです...しかし誰かが興味を持っている場合は、証明としてスナップショットを作成しようとしています...... – Prasham