Swift笔记(二十四)方法抛出异常及异常处理方式

2018-04-18  本文已影响16人  大基本功
怎么让一个方法抛出异常
//Error协议就是告诉编译器,这个枚举可以充当具体的异常值
enum FileError:Error{
    case notExists
    case notFormat
    case noCoontent
}
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.noCoontent
    }
    return content
}
异常处理方式
let path = Bundle.main.path(forResource:"text.txt",ofType:nil) ?? ""
//1.do catch
do{
    let content:String = try readFile(path: path)
}catch{
    print(error)
}
//2.try?
let content2 :String =  try? readFile(path: path)
//3.try!
let content3 :String =  try! readFile(path: path)
上一篇下一篇

猜你喜欢

热点阅读