根据System.Directory haddock,
更一般地说,我应该如何找出这样的东西。我看不到源代码中引发它的任何地方,所以我猜它是低级错误的包装器,但我该如何处理这些?
renameFile
可能因以下原因之一而失败:
- HardwareFault 发生了物理 I/O 错误。[EIO]
- InvalidArgument 任何一个操作数都不是有效的文件名。[ENAMETOOLONG,ELOOP]
- isDoesNotExistError / NoSuchThing 原始文件不存在或没有到目标的路径。[ENOENT,ENOTDIR]
- isPermissionError / PermissionDenied 进程权限不足以执行该操作。[EROFS,EACCES,EPERM]
- ResourceExhausted 没有足够的资源执行该操作。[EDQUOT,ENOSPC,ENOMEM,EMLINK]
- UnsatisfiedConstraints 实现相关的约束未被满足。[EBUSY]
- UnsupportedOperation 在此情况下,实现不支持重命名。[EXDEV]
- InappropriateType 任何一个路径引用现有目录。[ENOTDIR,EISDIR,EINVAL,EEXIST,ENOTEMPTY]
UnsupportedOperation
,我该如何测试它?更一般地说,我应该如何找出这样的东西。我看不到源代码中引发它的任何地方,所以我猜它是低级错误的包装器,但我该如何处理这些?
IOError _ UnsupportedOperation _ _ _ _ -> Just x
,但是收到了有关未导出 IOError/IOException 的投诉。 - Impredicative