1. A computer implemented method for handling safe exceptions, comprising: receiving an event; determining an exception handler for the event; determining that the exception handler is valid by comparing the exception handler to at least one list of valid exception handlers and determining that the exception handler is unaltered, and otherwise determining that the exception handler is invalid; and executing the exception handler when the exception handler is valid, wherein said at least one list of valid exception handlers is generated by: identifying one or more valid exception handler associated with software components to be compiled; including a safe exception section with each compiled software component, said safe exception section comprising addresses of valid exception handlers in the software component; marking the compiled software component when the compiled software component references or contains at least one of said one or more valid exception handlers, said marking operable to identify that the software component is associated with a valid exception handler; generating at least one list of valid exception handlers, said at least one list comprising the valid exception handlers included or referenced in the compiled software components; storing said at least one list of valid exception handlers in a protected area during program execution.