## Why is this an issue?

`NullPointerException` should be avoided, not caught. Any situation in which `NullPointerException` is explicitly caught can easily be converted to a `null` test, and any behavior being carried out in the catch block can easily be moved to the "is null" branch of the conditional.

### Noncompliant code example

    public int lengthPlus(String str) {
      int len = 2;
      try {
        len += str.length();
      }
      catch (NullPointerException e) {
        log.info("argument was null");
      }
      return len;
    }

### Compliant solution

    public int lengthPlus(String str) {
      int len = 2;

      if (str != null) {
        len += str.length();
      }
      else {
        log.info("argument was null");
      }
      return len;
    }

## Resources

- CWE - CWE-395 - Use of NullPointerException Catch to Detect NULL Pointer Dereference
- CERT - ERR08-J. Do not catch NullPointerException or any of its ancestors