【问题标题】:How to make a Swift 2 function throw exception如何使 Swift 2 函数抛出异常
【发布时间】:2015-11-06 17:48:19
【问题描述】:

这是我当前的代码

class HelloWorld {
    func foobar() {
        // ...
    }
}

如何让这个函数在被调用并发生意外情况时抛出异常?

【问题讨论】:

  • 文档很有用。您应该在发布问题之前查看一下。

标签: swift error-handling try-catch swift2


【解决方案1】:

根据 Swift 文档:

抛出错误

要表明一个函数或方法可以抛出一个错误,你写 throws 关键字在其声明中,在其参数之后。如果它 指定返回类型,你可以在前面写 throws 关键字 返回箭头 (->)。函数、方法或闭包不能抛出 除非明确指出,否则错误。

Apple's documentation 中有大量关于此主题的信息

错误是使用枚举来表示的,因此通过枚举创建一些您想要的错误,然后使用throw 关键字来执行此操作。

示例:

enum MyError: ErrorType{
    case FooError
}

func foobar() throws{
   throw MyError.FooError
}

【讨论】:

    【解决方案2】:

    首先,您可以创建一个包含错误的枚举,并实现ErrorType 协议

    enum MyError: ErrorType{
        case Null
        case DivisionByZero
    }
    

    然后,您可以使用throw 调用您的错误

    throw MyError.DivisionByZero
    

    所以,除法函数可能是这样的

    func divide(x: Int, y: Int) throws -> Float{
        if(y == 0){
            throw MyError.DivisionByZero
        }
        else{
            return x / y
        }
    }
    

    【讨论】:

    • 如何用docatch方法调用这个函数?例如checkisValidIntValue(x: 10, y: 20); func checkisValidIntValue(x: Int, y: Int) throws { guard x > 0 else {throw some.Error} let value = try? divide(x: x, y: y) //... here what to do when got success value and want to throw failure value else do operation with ouptu value in this same function}
    猜你喜欢
    • 2016-01-03
    • 2016-03-20
    • 2020-04-06
    • 2019-11-27
    • 2017-08-13
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多