Added some tests around when it's okay to throw exceptions