Added exception handling to the object classes. I also split out the
unit tests into three different types of tests: valid data tests, null
pointer tests, and invalid argument test.