added proper exception handling for all controllers and businesslayer