This simplifies the IOerror constructors and allows for the location to be conveniently cached for errors that can't be triggered until after the IO operation.
This simplifies the IOerror constructors and allows for the location to be conveniently cached for errors that can't be triggered until after the IO operation.