错误“调用可以抛出,但没有标记'尝试',错误不处理”
使用这段代码获得错误“调用可以抛出,但没有用'try'标记,错误不会被处理”
我正在使用Xcode 7.1最新的beta和swift 2.0
func checkUserCredentials() -> Bool { PFUser.logInWithUsername(userName!, password: password!) if (PFUser.currentUser() != nil) { return true } return false
Swift 2.0引入了error handling 。 该错误指示logInWithUsername:password:
可能会引发错误,并且必须执行此错误。 你有几个select之一:
将checkUserCredentials()
标记为throws
,并将错误传播给调用者:
func checkUserCredentials() throws -> Bool { try PFUser.logInWithUsername(userName!, password: password!) if (PFUser.currentUser() != nil) { return true } return false }
使用do
/ catch
语法来捕获潜在的错误:
func checkUserCredentials() -> Bool { do { try PFUser.logInWithUsername(userName!, password: password!) } catch _ { // Error handling } if (PFUser.currentUser() != nil) { return true } return false }
使用try!
关键字有程序陷阱,如果错误被抛出,这只适用于如果你知道一个事实,function将永远不会抛出当前的情况下 – 类似于使用!
强制展开一个可选的(似乎不太可能的方法名称):
func checkUserCredentials() -> Bool { try! PFUser.logInWithUsername(userName!, password: password!) if (PFUser.currentUser() != nil) { return true } return false }