+1. I don't think there's any case (in mojos, or even anywhere) where manually throwing a NPE is valid.
Cheers 2013/5/14 Robert Scholte <[email protected]> > The fact that you throw the NPE yourself means that it is an expected > Exception. > If you read EnforcerRuleException as "an/any Exception in this > EnforcerRule", it is valid for me to throw this kind of Exception, although > I can imagine the doubt. > If you don't want to use the ERE, then create a new RuntimeException, > matching the real issue, like MissingParentException. I agree with several > code quality checkers that you should avoid to throw NPEs yourself. > > Robert > > > On Tue, 14 May 2013 09:26:48 +0200, Michael Koch <[email protected]> > wrote: > > Throwing a NPE yourself? There must be a better solution.... >>> >>> + >>>> + // fail fast if the defining parent could not be found due to >>>> a bug in the rule >>>> + if ( parent == null ) >>>> + { >>>> + throw new NullPointerException( "failed to find parent POM >>>> which defines the current rule" ); >>>> + } >>>> >>> >> This code is originally from me, so I'll explain. If the rule fails to >> find the parent this is due to an error in the rule code. The explicit >> check makes it easier to diagnose. Without it, a NPE will be thrown later >> when the parent value is needed. This is not always the case: without the >> explicit check the plugin execution will succeed when used in the parent >> POM, but fail with a NPE in the child POM which inherits the configuration. >> >> It is debatable whether NullPointerException is a good choice, but I >> think none of the other standard RuntimeExceptions are a better fit. I also >> didn't want to use EnforcerRuleException, because the NPE is an internal >> error, not an expected result of the rule configuration / execution. >> >> Cheers >> Michael Koch >> >> ------------------------------**------------------------------**--------- >> To unsubscribe from this list, please visit: >> >> >> http://xircles.codehaus.org/**manage_email<http://xircles.codehaus.org/manage_email> >> >> > ------------------------------**------------------------------**--------- > To unsubscribe from this list, please visit: > > > http://xircles.codehaus.org/**manage_email<http://xircles.codehaus.org/manage_email> > > > -- Baptiste <Batmat> MATHUS - http://batmat.net Sauvez un arbre, Mangez un castor !
