abstract class A { private void nullCheck(Object o) throws MyException { if (o == null) { throw new MyException(); } } void test(Object o) { try { nullCheck(o); } catch (MyException e) { if (o == null) {} // Noncompliant {{Change this condition so that it does not always evaluate to "true"}} } o.toString(); // Noncompliant {{NullPointerException might be thrown as 'o' is nullable here}} } void covered() { Object o = null; try { doSomething(); } catch(MyException e){ o = new Object(); } if (o == null) {} // Compliant } private void doSomething() throws MyException { exceptionalMethod(); } abstract Object exceptionalMethod() throws MyException; } class MyException extends Exception {}