I see catch exception everywhere in this class, but isn't [ExpectedException(typeof(ArgumentException))] etc. a lot better!