Maybe move this `if` inside the `if` above? It will only possibly succeed when the `touch` has succeeded, so it makes for more readable code - if you can touch, then try to save, but if it didn't save then throw.