在 Swift 2 中,任何符合 ErrorType 协议的类型都可以被抛出和捕获。对我来说,有一个通用的错误层次结构并在多个地方重用它是有意义的。但是,Apple 文档似乎促使开发人员使用枚举来处理错误。
例如,这个层次结构可以让我在不知道它的确切子类型的情况下捕获并处理一个常见的 ValidationError。这也将允许应用程序的不同部分扩展 ValidationError。
MyAppError
ValidationError
InvalidPathError
WrongFileTypeError
Run Code Online (Sandbox Code Playgroud)
混合不同风格的错误定义看起来不是一个好主意。那么,我应该围绕类层次结构或枚举对所有错误处理进行建模吗?