This function does not do what it says.  Says it returns boolean but will actually either return true or throw exception.  fn's named with a `?` should actually return boolean, which is what i suggest here.  Let the caller do an assert on the return value.