added exception and error return message