Add detailed message to NullPointerException describing what is null

Add detailed message to NullPointerException describing what is null

When the exception is raised, the original Java code is not available, but the bytecodes. Usually, exception messages are computed at Object creation time and stored in the private field ‘detailMessage’ of Throwable. The message will mention information from the code like class names, method names, field names and variable names.

Source: openjdk.java.net