当我调用的函数使用类似的东西时,我经常会遇到这些错误:
optionalVar!
“在打开一个可选的”时出乎意料地发现了nil
如果我不能总是控制内部代码,我不确定如何处理有时失败的函数?
有没有办法保护这些崩溃?在大多数语言中,我可以尝试捕捉大多数事物。
当我做类似的事情时:
if let result = Blah.someExternalFunction(html: "some bad html") { }
即使在尝试添加try之后,这仍然可以在“someExternalFunction”中失败?在它面前。
由于
答案 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