Swift——异常错误处理(throws)

基于Swift 5.0 

1、函数内部通过 throw 抛出自定义Error, 可能会抛出Error的函数必须加上 throws声明

2、需要使用try 调用可能会抛出Error的函数

3、抛出 Error后,try 下 一句直到作用域结束的代码都将停止运行

处理 Error的2种方式

 1、通过 do - catch 捕捉Error错误 (try 方式)

 2、不捕捉Error ,在当前函数增加throws 声明,Error将自动抛给上层函数

 如果最顶层函数(main函数)依然没有捕捉Error,那么程序将终止

 可有使用try? 、 try!调用可能会抛出Erro的函数,这样就不用去处理Error

    // 1、 获取json文件路径
    guard let jsonPath = Bundle.main.path(forResource: "test.json", ofType: nil) else { return }
    //例 1 do  - catch  try 方法
    do {
        let obj = try Data(contentsOf: URL(fileURLWithPath: jsonPath))
        print(obj)
    }catch{
        //错误信息
        print(error)
    }
    
    //例 2: try?方式(常用方式) 系统帮助我们处理异常,如果该方法出现了异常,则该方法返回nil.如果没有异常,则返回对应的对象
    guard let anyObject = try? Data(contentsOf: URL(fileURLWithPath: jsonPath)) else { return }
    print(anyObject)
    
    //例3: try!方法(不建议,非常危险) 直接告诉系统,该方法没有异常.注意:如果该方法出现了异常,那么程序会报错(崩溃)
    let anyObject1 = try! Data(contentsOf: URL(fileURLWithPath: jsonPath))
    print(anyObject1)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值