Using less exceptions and more messages for error handling