Are there any design patterns/methods/ways to remove nested if then else conditions/switch statements?
I remember coming across some methods used by the Google folks
Have you read this on flattening arrow code from Coding Horror?
You can replace throw with return or goto if you're using a language without exceptions.