A String is not an Error Why Error Handling? Default behavior for programs is to terminate on an error, or enter the debugger Terrible user experience Why Handle Errors? Gracefully Handle Errors (retry connections, re-prompt for user input, etc) Non Local Control Flow (Display error messages and screens)