Existe uma alternativa ao código hiper-recuado?

Costumo encontrar um código que precisa executar muitas verificações e acaba sendo recuado pelo menos cinco ou seis níveis antes de realmente fazer qualquer coisa. Eu estou querendo saber quais alternativas existem.

Abaixo, publiquei um exemplo do que estou falando (que não é um código de produção real, apenas algo que me veio à cabeça).

public String myFunc(SomeClass input)
{
    Object output = null;

    if(input != null)
    {
        SomeClass2 obj2 = input.getSomeClass2();
        if(obj2 != null)
        {
            SomeClass3 obj3 = obj2.getSomeClass3();
            if(obj3 != null && !BAD_OBJECT.equals(obj3.getSomeProperty()))
            {
                SomeClass4 = obj3.getSomeClass4();
                if(obj4 != null)
                {
                    int myVal = obj4.getSomeValue();
                    if(BAD_VALUE != myVal)
                    {
                        String message = this.getMessage(myVal);
                        if(MIN_VALUE <= message.length() &&
                           message.length() <= MAX_VALUE)
                        {
                            //now actually do stuff!
                            message = result_of_stuff_actually_done;
                        }
                    }
                }
            }
        }
    }
    return output;
}

questionAnswers(7)

yourAnswerToTheQuestion