http://stackoverflow.com/questions/20431614/throw-and-catch-an-exception-or-use-instanceof/