System.Directory haddockによるrenameFile
と、いくつかの理由で失敗する可能性があります。
- HardwareFault 物理 I/O エラーが発生しました。【EIO】
- InvalidArgument いずれかのオペランドが有効なファイル名ではありません。[エナメトゥーロン、イループ]
- isDoesNotExistError / NoSuchThing 元のファイルが存在しないか、ターゲットへのパスがありません。[ENOENT、ENOTDIR]
- isPermissionError / PermissionDenied プロセスには操作を実行する権限がありません。[EROFS、EACCES、EPERM]
- ResourceExhausted 操作を実行するのに十分なリソースがありません。[EDQUOT、ENOSPC、ENOMEM、EMLINK]
- UnsatisfiedConstraints 実装依存の制約が満たされていません。[エビジー]
- UnsupportedOperation 実装は、この状況での名前変更をサポートしていません。【エクスデブ】
- いずれかのパスが既存のディレクトリを参照しています。[ENOTDIR、EISDIR、EINVAL、EEXIST、ENOTEMPTY]
これらのいくつか (isPermissionError、isDoesNotExistError) にはテスト機能がありますが、他のもの (私が興味を持っている UnsupportedOperation を含む) は何にも対応していないようです。それは何ですかUnsupportedOperation
、どうすればテストできますか?
より一般的には、このようなものが何であるかを知るにはどうすればよいでしょうか。ソースコードのどこにそれが発生したかが見えないので、それは下位レベルのエラーのラッパーであると推測していますが、どのように対処すればよいでしょうか?