why are these two different exception types?