Change Error reporting to more useful custom Exceptions