如何包装函数try catch所以强制unwrap nil不会崩溃应用程序?

时间:2018-05-30 00:01:05

标签: swift

当我调用的函数使用类似的东西时,我经常会遇到这些错误:

 optionalVar!
  

“在打开一个可选的”时出乎意料地发现了nil

如果我不能总是控制内部代码,我不确定如何处理有时失败的函数?

有没有办法保护这些崩溃?在大多数语言中,我可以尝试捕捉大多数事物。

当我做类似的事情时:

if let result = Blah.someExternalFunction(html: "some bad html") { } 

即使在尝试添加try之后,这仍然可以在“someExternalFunction”中失败?在它面前。

由于

1 个答案:

答案 0 :(得分:0)

您正在寻找的是if let

如果你有一个可选值,你可以简单地做这样的事情来"尝试"它:

if let val = optionalVar{
    //val is already unwrapped
}
else{//it was nil}

另一个选择是使用guard语句。它的工作原理类似

guard let val = optionalVar 
else{
    //the value is nil, so you need to exit the current function
    return
}
//'val' is now unwrapped for any code below the guard-else statement