ios - 在 Swift 中使用自定义消息抛出错误/异常的最简单方法?

标签 ios swift

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

throw new RuntimeException("A custom message here")

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

最佳答案

最简单的方法可能是定义一个自定义enum,其中仅包含一个附有Stringcase给它:

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/

相关文章:

ios - 如何减慢 MKMapCamera 的运动?

iOS Google Maps API - 从另一个 View Controller 发送 GMSMapview

ios - Swift 中的核心数据通知

objective-c - 使用 GestureRecognizers 操作 UIImage - NOT UIImageView

ios - 在 `touchesBegan:withEvent:` 之后禁用所有 UIPanGestureRecognizers

ios - 为 iOS 中的标准键盘换出自定义 inputView

swift - 使用 AVPlayer swift 完成后再次播放音频

ios - AudioKit 如何更新绘图以更改颜色或原型(prototype)

swift - iOS - Swift - 录制时的一些音频达到最大允许长度

ios - 如何将圆形动画应用于单元格?