Use Control.Exception exception handlers, and make copyFile meet its spec