add unhandled exception handling. Qiu