exception handling enhancement