美文网首页
Swift笔记(二十四)方法抛出异常及异常处理方式

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

作者: 大基本功 | 来源:发表于2018-04-18 10:16 被阅读16次
    怎么让一个方法抛出异常
    • 定义一个函数会抛出异常(后加throws)
    • 在函数里抛出具体异常(具体异常值必须遵循Error协议)
    //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
    }
    
    异常处理方式
    • 使用do catch 处理
    • 使用try? 处理 (try?代表我们知道这里可能会出异常,但是就是不想处理,如有问题就是nil)
    • 使用try! 处理(try!表示我确信没有任何异常!!!!不安全)
    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)
    

    相关文章

      网友评论

          本文标题:Swift笔记(二十四)方法抛出异常及异常处理方式

          本文链接:https://www.haomeiwen.com/subject/voccnxtx.html