Errors 初級

JVMがどの変数がnullだったかを自動的に教えてくれる。

✕ Java 8
// Old NPE message:
// "NullPointerException"
// at MyApp.main(MyApp.java:42)
// Which variable was null?!
✓ Java 14+
// Modern NPE message:
// Cannot invoke "String.length()"
// because "user.address().city()"
// is null
// Exact variable identified!
このコードに問題がありますか? お知らせください。
🔍

正確な変数特定

メッセージはチェーン内のnull変数を指定します。

デバッグが速い

5つのチェーン呼び出しのどれがnullだったか推測不要。

🆓

無償のアップグレード

コード変更不要 — JDK 14以降で実行するだけ。

旧来のアプローチ
不明瞭なNPE
モダンなアプローチ
詳細なNPE
JDKバージョン
14
難易度
初級
わかりやすいNullPointerException
利用可能

JDK 14(2020年3月)以降、広く利用可能

わかりやすいNPEはどの式がnullで、どの操作が失敗したかを説明します。Java 14からデフォルトで有効になっています — コードの変更は不要で、JDKのアップグレードだけで利用できます。

共有 𝕏 🦋 in