Re: Checking for null parameter



Lew wrote:
A method must be coded to handle any input that can be sent to it. Otherwise it will break when it gets the wrong input.

Tom Anderson wrote:
This is very silly advice.

Calling it "silly" is criminally irresponsible; someone might believe you.

What's the matter, is it too hard to copy-and-paste a try-catch block?

Around *every* *single* *method* (or code block, or whatever granularity you fancy)? Yes. Yes it is.

You must put try-catch blocks somewhere where exceptions can occur, or your program will crash. I don't know about you, but all the customers I've had consider letting a program crash to be bad.

This is the crux of it - some methods do need hardening against duff parameters, like nulls, NaNs, out-of-range integers, objects that are invalid in more subtle ways, etc, but not all. You say all public

Wrong. All methods must be able to handle any input that they can receive, otherwise your program will crash. I don't know about you, but all the customers I've had consider letting a program crash to be bad.

methods, but i [sic] think that's overkill. Firstly, it only needs to be on exported methods - methods that you expect outside code to call; the

Right, I did say this applied to public methods.

main entry points to the component or package or whatever. If outside code wants to call your internal methods with duff arguments, fine, let it handle the consequences. Secondly, i'm [sic] generally quite happy to have

The consequences which are coded into the API and documented in its Javadocs, yes.

code screws up when given a null, as long as it's clear that i [sic] shouldn't pass a null. That again hands the responsibility for not passing in a null to the caller.

It's only clear that you shouldn't pass 'null' to an API method if the method planned for and handles the 'null', say by throwing an NPE, and tells you so in its Javadocs. Otherwise how would it be clear?

It would be nice if java [sic] could express a requirement for non-nullity in the type system. Some type systems forbid nulls from normal variables,

It can - by including a checked exception in the method signature.

--
Lew
.



Relevant Pages

  • Re: A huge public thank you to ...
    ... for letting me crash at his place for a few weeks while I was ... >> waiting for the tenants at my new place to move out. ...
    (uk.rec.motorcycles)
  • Re: A huge public thank you to ...
    ... > invalid@xxxxxxxx 'Hog says... ... >>> Simes, for letting me crash at his place for a few weeks while I ...
    (uk.rec.motorcycles)
  • Re: A huge public thank you to ...
    ... for letting me crash at his place for a few weeks while I was ... > waiting for the tenants at my new place to move out. ...
    (uk.rec.motorcycles)