swift - 尝试快速捕获变量

标签 swift swift2 try-catch

我正在尝试针对变量添加 try catch。没有 try catch 我这个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value for variable Double(label.text!)!

所以我想捕获上面的错误。我在下面试过

do{
    let value = try Double(label.text!)!
    print("value\(value)")
} catch{
    print("hi")
}

但它仍然给出同样的错误,我也看到了这个警告:

No calls to throwing functions occur within try and catch block in unreachable...

这是在 swift 中使用 try catch block 的正确方法吗?

编辑:(不重复)如果我只是返回 return Double(labelDisplay.text) 我得到编译错误 value of option type String?没有展开,所以我必须使用 return Double(labelDisplay.text!)!` ,如果失败的话。这就是我试图捕获它的原因。

另一个编辑:标签是@IBOutlet weak private var label: UILabel!

编辑:返回码

var displayValue: Double{
    get{
        print(labelDisplay.text.dynamicType)
        return Double(labelDisplay.text!)!
    }
    set{
        labelDisplay.text! = String(newValue)
    }
}

最佳答案

从字符串中生成 double 不会抛出,所以你不会捕获任何东西,你应该

if let value = Double(label.text) {
    //here it worked out 
    print("value \(value)")
} else {
    //it failed
}

关于swift - 尝试快速捕获变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254936/

相关文章:

arrays - 在 Swift 中使用委托(delegate)数组时如何避免保留循环

arrays - 从另一个类读取数组

ios - 创建一条线,像Xcode一样,在Swift中连接两个对象

java - 如何避免在我的情况下返回 null?

ios - 如何将所有值作为 NSArray 返回?来自完成 block 中的查询

swift - 在 SwiftUI 中使用 TabView 时,NavigationView 无法正确显示

migration - 我如何创建一个 [String : AnyObject] array in swift2

ios - registerUserNotificationSettings 用户反馈?

c# - 全局 try catch

java - 何时捕获异常(高级别与低级别)?