produce a better exception