use ApplicationException instead of Exception (for non fatal application errors)