better try-catch in evaluation