One of my pet peeves in programming is that few people use guard clauses. A guard clause is an almost trivial concept that greatly improves readability. Inside a method, handle your special cases right away and return immediately.
Have a look at the following example:
private int doSomething() {
if (everythingIsGood()) {
/*
* Lots and lots of code here, but that's a different story.
*/
return SOME_VALUE;
} else {
return ANOTHER_VALUE; // a special case
}
}
You can easily rewrite it using the Replace Nested Conditional with Guard Clauses refactoring from Martin Fowler's Refactoring:
private int doSomething() {
if (! everythingIsGood()) // <-- this is your guard clause
return ANOTHER_VALUE;
/*
* Lots and lots of code here, but that's a different story.
*/
return SOME_VALUE;
}
Once you've read past the conditional(s) at the beginning of the method, you know that your world is in order and you don't have to worry about special cases anymore.