使用Swift 3在do {行中出现预期的声明错误

凯利·希思(Kelly Heath)

我在do {行收到预期的声明错误。我尝试进行研究,并在try / catch语句中阅读了有关Swift 3的Apple开发人员信息,但未能弄清楚这一点。

这是代码:

class Calculator: ViewController {

    var display = "0"
    var numerator : Float?
    var denominator : Float?
    var total : Float?


    enum divisionErrors: Error {
        case inf
        case nan
    }

    func divide(num: Float, by denum: Float) throws -> Float {
        guard num != 0 else{throw divisionErrors.nan}
        guard denum != 0 else{throw divisionErrors.inf}

        let computedValue = num / denum
        return computedValue
    }

    do {

        catch divisionErrors.inf {print("Error")}
        display = "0"

        catch divisionErrors.nan {print("Error")}
        display = "0"
    }
}
斯马汀

您的主要问题是您试图do在类的主体中使用一条语句,而该语句只能在函数的主体中使用。为了论证,我将其放入viewDidLoad方法中。

class Calculator: UIViewController {

    var display = "0"
    var numerator : Float?
    var denominator : Float?
    var total : Float?


    enum divisionErrors: Error {
        case inf
        case nan
    }

    func divide(num: Float, by denum: Float) throws -> Float {
        guard num != 0 else{throw divisionErrors.nan}
        guard denum != 0 else{throw divisionErrors.inf}

        let computedValue = num / denum
        return computedValue
    }

    override func viewDidLoad() {

        do {
            try total = divide(num: numerator!, by: denominator!)

        } catch divisionErrors.inf {
            print("Error")
            display = "0"
        } catch divisionErrors.nan {
            print("Error")
            display = "0"
        } catch {
            assert(false, "Other Error")
        }
    }
}

换句话说,当您do做某事时,您还try必须做一些可能会失败的事情。之后,您do使用一些catch关于您的错误的语句来关闭就像switch声明一样,您的catch案件必须详尽无遗。在尝试进行编译时,如果没有最后的catch结果将其余所有可能的错误四舍五入,则会出现错误,因为潜在的错误会超出divisionErrors枚举的范围

您可能还想对分子和分母进行错误检查,以确保它们存在。我只是为了练习而强行拆开它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Swift的预期声明错误

来自分类Dev

Alamofire 在 Swift 3、Xcode 8 中出现错误

来自分类Dev

使用SQLite Swift的Singleton中出现错误

来自分类Dev

Swift:.frame的预期声明错误

来自分类Dev

MacOS项目Xcode8 Swift 3中出现新的“非文件URL”错误

来自分类Dev

Swift 3歧义使用“行”

来自分类Dev

Swift博客的Balloons Demo中出现错误

来自分类Dev

使用Swift 3时出现“ InvalidPathValidation”

来自分类Dev

使用Swift 3时出现“ InvalidPathValidation”

来自分类Dev

使用nullptr在Codeblocks IDE中出现错误

来自分类Dev

使用ArrayLists的ListView中出现错误

来自分类Dev

使用ArrayLists的ListView中出现错误

来自分类Dev

使用sql的Android Studio中出现错误

来自分类Dev

NSMultipleValuesMarker在Swift 3中使用未声明的类型

来自分类Dev

升级到Swift 3时使用未声明的类型

来自分类Dev

Swift 3出现“前缀使用不正确”的编译器错误

来自分类Dev

从 2.3 转换 swift 3 时出现错误“无法使用类型为 '((UIContentContainer, C ~~

来自分类Dev

是什么导致DynamoDB UpdateItem在Swift中出现致命错误?

来自分类Dev

Swift中出现“调用中的额外参数”错误

来自分类Dev

Swift中出现致命错误(对于导航栏)

来自分类Dev

是什么导致 Swift 中出现“无法转换类型”错误?

来自分类Dev

Swift类init引发编译时错误“预期的声明”

来自分类Dev

用户默认值Swift中的“预期的声明”错误

来自分类Dev

使用mingw64 c ++编译imapi2应用时,在imapi2.h中出现错误“无类型的'__RPC__range'的声明”

来自分类Dev

使用未声明的类型错误:Swift

来自分类Dev

jNews安装使Joomla中出现数据库错误!3

来自分类Dev

JavaScript中出现“预期的':'”错误的未知原因

来自分类Dev

使用 '。' 使用属性路由的Web Api中出现404错误

来自分类Dev

使用Swift 3在Parse中删除一行

Related 相关文章

  1. 1

    使用Swift的预期声明错误

  2. 2

    Alamofire 在 Swift 3、Xcode 8 中出现错误

  3. 3

    使用SQLite Swift的Singleton中出现错误

  4. 4

    Swift:.frame的预期声明错误

  5. 5

    MacOS项目Xcode8 Swift 3中出现新的“非文件URL”错误

  6. 6

    Swift 3歧义使用“行”

  7. 7

    Swift博客的Balloons Demo中出现错误

  8. 8

    使用Swift 3时出现“ InvalidPathValidation”

  9. 9

    使用Swift 3时出现“ InvalidPathValidation”

  10. 10

    使用nullptr在Codeblocks IDE中出现错误

  11. 11

    使用ArrayLists的ListView中出现错误

  12. 12

    使用ArrayLists的ListView中出现错误

  13. 13

    使用sql的Android Studio中出现错误

  14. 14

    NSMultipleValuesMarker在Swift 3中使用未声明的类型

  15. 15

    升级到Swift 3时使用未声明的类型

  16. 16

    Swift 3出现“前缀使用不正确”的编译器错误

  17. 17

    从 2.3 转换 swift 3 时出现错误“无法使用类型为 '((UIContentContainer, C ~~

  18. 18

    是什么导致DynamoDB UpdateItem在Swift中出现致命错误?

  19. 19

    Swift中出现“调用中的额外参数”错误

  20. 20

    Swift中出现致命错误(对于导航栏)

  21. 21

    是什么导致 Swift 中出现“无法转换类型”错误?

  22. 22

    Swift类init引发编译时错误“预期的声明”

  23. 23

    用户默认值Swift中的“预期的声明”错误

  24. 24

    使用mingw64 c ++编译imapi2应用时,在imapi2.h中出现错误“无类型的'__RPC__range'的声明”

  25. 25

    使用未声明的类型错误:Swift

  26. 26

    jNews安装使Joomla中出现数据库错误!3

  27. 27

    JavaScript中出现“预期的':'”错误的未知原因

  28. 28

    使用 '。' 使用属性路由的Web Api中出现404错误

  29. 29

    使用Swift 3在Parse中删除一行

热门标签

归档