错误“调用可以抛出,但没有标记'尝试',错误不处理”

使用这段代码获得错误“调用可以抛出,但没有用'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 }