小编典典

在 Swift 中使用自定义消息引发错误/异常的最简单方法?

all

我想在 Swift 中做一些我习惯用多种其他语言做的事情:使用自定义消息引发运行时异常。例如(在 Java 中):

throw new RuntimeException("A custom message here")

我知道我可以抛出符合 ErrorType
协议的枚举类型,但我不想为我抛出的每种错误类型定义枚举。理想情况下,我希望能够尽可能地模仿上面的例子。我研究了创建一个实现ErrorType
协议
的自定义类,但我什至无法弄清楚该协议需要什么。想法?


阅读 62

收藏
2022-07-14

共1个答案

小编典典

最简单的方法可能是定义 一个 自定义enum,其中只有case一个String附加了一个自定义:

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类型,最通用的类​​型是 an NSError,您可以创建一个工厂方法来创建并使用自定义消息抛出一个。

2022-07-14