Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何生成Swift 2函数抛出异常_Swift_Error Handling_Try Catch_Swift2 - Fatal编程技术网

如何生成Swift 2函数抛出异常

如何生成Swift 2函数抛出异常,swift,error-handling,try-catch,swift2,Swift,Error Handling,Try Catch,Swift2,这是我目前的代码 class HelloWorld { func foobar() { // ... } } 如何使此函数在调用时引发异常,并发生意外情况?首先,您可以创建包含错误的枚举,并实现ErrorType协议 enum MyError: ErrorType{ case Null case DivisionByZero } 然后,您可以使用throw throw MyError.DivisionByZero 除法函数可以是这样的 fun

这是我目前的代码

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

如何使此函数在调用时引发异常,并发生意外情况?

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

根据Swift文件:

投掷错误

要指示函数或方法可能引发错误,请编写 关键字在其声明中的参数后抛出。如果是 指定返回类型时,在 返回箭头(->)。函数、方法或闭包不能抛出 错误,除非明确指出

这里有大量关于这个话题的信息

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

示例:

enum MyError: ErrorType{
    case FooError
}

func foobar() throws{
   throw MyError.FooError
}

这些文件很有用。在发布问题之前,您应该先看一看。如何使用
docatch
方法调用此函数?例如
checkisValidIntValue(x:10,y:20);func checkisValidIntValue(x:Int,y:Int)抛出{guard x>0 else{throw some.Error}let value=try?divide(x:x,y:y)/…在这里,当获得成功值并希望抛出失败值时,该怎么办?否则在同一函数中使用ouptu值执行操作}