iOS程序猿程序员的自我修养swift

Swift: do-catch & try(do-try

2018-03-09  本文已影响31人  yehkong

序言:标题之所以没有写成do-try-catch,而写成do-catch & try,我个人觉得后者更有助于理解。

do-catch & try语法
do {
      try   //throw error语句
      //没有错误发生时的后续语句
}catch {
    //错误处理语句
}
简单一个应用例子如下:
    //自定义错误类型枚举
    enum Yterror: Error{
        case err1
        case err2
        case err3
    }
    //有抛出错误的方法
    func getNetwordData() throws {
        throw Yterror.err1 //抛出错误
    }
    
    //调用函数
    func myMethod() {
        do{
           try getNetwordData() //必须要有try
        }catch let error{
            print("error:\(error)")//捕捉到错误,处理错误
        }
    }
知识点

我们可以理解do-catch语句把try语句包裹起来,try后面必须接用throws 修饰的函数或方法,当这个方法发送错误并throw错误时,由catch语句来捕捉,并进行处理。这样就把do-catch & try几个知识点多串起来了。下面我们针对涉及到的两个知识点简单展开。

 func throwMethod1() throws{
            //方法体
        }
 func throwMethod2(_ parameter:Int8) throws ->(Bool){
            
        }

其中,try?修饰的时候,如果throws方法抛出错误,则方法返回nil,反之如果没有发送错误则返回可选值。

try!修饰的时候,可以打断错误传播链,throws方法的错误不传播给调用者,这样的话一定要去确保程序不发送错误,否则程序会在发生错误时退出。

上一篇 下一篇

猜你喜欢

热点阅读