``++NullReferenceException++`` should be avoided, not caught. Any situation in which ``++NullReferenceException++`` 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 [source,csharp] ---- public int GetLengthPlusTwo(string str) { int length = 2; try { length += str.Length; } catch (NullReferenceException e) { log.info("argument was null"); } return length; } ---- == Compliant Solution [source,csharp] ---- public int GetLengthPlusTwo(string str) { int length = 2; if (str != null) { length += str.Length; } else { log.info("argument was null"); } return length; } ---- == See * https://cwe.mitre.org/data/definitions/395[MITRE, CWE-395] - Use of NullPointerException Catch to Detect NULL Pointer Dereference ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] include::highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]