异常处理
- 错误处理(Error handling)是响应错误以及从错误中恢复的过程
- 在 Swift 中,错误用符合 Error 协议的类型的值来表示。这个空协议表明该类型可以用于错误处理。
- 抛出错误使用throw关键字
- 使用 do-catch 语句处理错 误、将错误作为可选类型处理、或者断言此错误根本不会发生。
- 在调用一个能抛出错误的函数、方法或者构造器之前,加上 try 关键字 来处理异常
- try是开发者 手动处理异常方式,结合 do- catch使用
do {
try JSONSerialization.jsonObject(with:jsonData as Data, options: .mutableContainer
}catch{
// catch 捕捉异常 系统会提供一个 临时的常量 error
print(error);
}
- try ? (常用)系统帮助我们处理异常,如果这个方法出现异常,则这个方法返回nil,如果没有异常返回 对应的对象 (最终返回的是一个可选类型)
- try! 直接告诉系统 这个方法没有异常,如果这个方法出现异常,程序直接crash
///异常
///枚举 Error 就是告诉编译器,这个枚举。可以充当具体的异常值
enum FileError:Error {
case notExists
case notFormat
case notContent
}
//函数
func readFile(path:String) throws ->String {
//1.判断文件路径是否存在
let isExsits = FileManager.default.fileExists(atPath: path);
if !isExsits {
//如果想要成为,异常值,必须要遵循一个协议Error
//如果有错误 抛出异常 终止代码执行
throw FileError.notExists;
}
//2.读取文件
var content:String = "";
do {
content = try String(contentsOfFile: path);
}catch {
//捕捉到异常
throw FileError.notFormat;
}
if content.lengthOfBytes(using: String.Encoding.utf8) == 0 {
throw FileError.notContent;
}
return content;
}