我想在 Swift 中做一些我习惯在多种其他语言中做的事情:使用自定义消息抛出运行时异常。例如(在 Java 中):
throw new RuntimeException("A custom message here")
我知道我可以抛出符合 ErrorType 协议(protocol)的枚举类型,但我不想为我抛出的每种错误类型定义枚举。理想情况下,我希望能够尽可能地模仿上面的例子。我考虑创建一个实现 ErrorType protocol 的自定义类,但我什至不知道该协议(protocol)需要什么。有想法吗?
最佳答案
最简单的方法可能是定义一个自定义enum
,其中仅包含一个附有String
的case
给它:
enum MyError: ErrorType {
case runtimeError(String)
}
或者,从 Swift 4 开始:
enum MyError: Error {
case runtimeError(String)
}
示例用法如下:
func someFunction() throws {
throw MyError.runtimeError("some message")
}
do {
try someFunction()
} catch MyError.runtimeError(let errorMessage) {
print(errorMessage)
}
如果您希望使用现有的 Error
类型,最常见的类型是 NSError
,您可以创建一个工厂方法来创建并抛出一个自定义错误消息。
关于ios - 在 Swift 中使用自定义消息抛出错误/异常的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890584/