recover from exceptions