基于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)