Today I discovered that exceptions are great: have you ever realized that the semantic of an exception includes the information about what is the expected branch to take? This means that exceptions (plus a smart compiler) could make your code run faster, in average, than using an ancient language where you must use if-statements.
Maybe this is obvious to most of you, but I'm happy I just "discovered" this.