如何使Swift 2函数抛出异常

时间:2015-08-13 16:27:22

标签: swift error-handling try-catch swift2

这是我目前的代码

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

如果该函数在被调用和出现意外情况时抛出异常,该怎么办?

2 个答案:

答案 0 :(得分:11)

根据Swift文档:

  

投掷错误

     

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

Apple's documentation

中有关于此主题的大量信息

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

示例:

enum MyError: ErrorType{
    case FooError
}

func foobar() throws{
   throw MyError.FooError
}

答案 1 :(得分:7)

首先,您可以创建包含错误的枚举,并实现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
    }
}