试着抓住不在swift工作

时间:2015-12-03 07:52:12

标签: xcode swift2

这应该是简单而明显的,但试着抓住swift2让我感到沮丧。这是我的代码。

@IBAction func btnAdd_TouchDown(sender: AnyObject) {

        do  { try AddNewNotesToList() } catch{

            if(Ex.UnknownError != "")
            {
                Error(Ex.UnknownError)
            }
        }
    }



func AddNewNotesToList() throws
    {
        var obj: TreatmentNotesDTO = TreatmentNotesDTO()
        obj.therapist_id = Int(TherapistId)! // getting error here
        return
    }

错误:

  

致命错误:在解包可选值时意外发现nil

调试器应该去捕获但它的分解。我是来自c#,刚刚开始使用swift2。任何帮助

1 个答案:

答案 0 :(得分:1)

我建议您使用guard来捕获此类错误:

guard let therapistID = Int(TherapistId) else {
    print(TherapistId + " cannot be converted to an Int")
    return
    // or mark function as throws and return an error
    throw NSError(domain: TherapistId + " cannot be converted to an Int", code: 0, userInfo: nil)
}
obj.therapist_id = therapistID

请注意,Int(TherapistId)!不会引发throws错误。它是fatal error,可以停止程序执行。