Coverage Summary for Class: HelpfulNPE (dev.suresh.npe)
  | Class | 
  Method, %
 | 
  Branch, %
 | 
  Line, %
 | 
  Instruction, %
 | 
  | HelpfulNPE | 
  
    0%
  
  
    (0/2)
  
 | 
  
    0%
  
  
    (0/2)
  
 | 
  
    0%
  
  
    (0/7)
  
 | 
  
    0%
  
  
    (0/43)
  
 | 
  
    | HelpfulNPE$Address | 
  
    0%
  
  
    (0/1)
  
 | 
     | 
  
    0%
  
  
    (0/1)
  
 | 
  
    0%
  
  
    (0/14)
  
 | 
  
  
    | HelpfulNPE$Country | 
  
    0%
  
  
    (0/1)
  
 | 
     | 
  
    0%
  
  
    (0/1)
  
 | 
  
    0%
  
  
    (0/14)
  
 | 
  
  
    | HelpfulNPE$Customer | 
  
    0%
  
  
    (0/1)
  
 | 
     | 
  
    0%
  
  
    (0/1)
  
 | 
  
    0%
  
  
    (0/14)
  
 | 
  
  | Total | 
  
    0%
  
  
    (0/5)
  
 | 
  
    0%
  
  
    (0/2)
  
 | 
  
    0%
  
  
    (0/10)
  
 | 
  
    0%
  
  
    (0/85)
  
 | 
 package dev.suresh.npe;
 
 public class HelpfulNPE {
 
   public static void run() {
     try {
       String name = new Customer(new Address(null)).address.country.name;
       System.out.println(name);
     } catch (NullPointerException npe) {
       System.out.printf("Helpful NPE: %s%n", npe.getMessage());
       assert npe.getMessage()
           .equals(
               """
                     Cannot read field "name" because "address.country" is null""");
     }
   }
 
   record Customer(Address address) {}
 
   record Address(Country country) {}
 
   record Country(String name) {}
 }