exception handle complete