美文网首页
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笔记(二十四)方法抛出异常及异常处理方式

    怎么让一个方法抛出异常 定义一个函数会抛出异常(后加throws) 在函数里抛出具体异常(具体异常值必须遵循Err...

  • Swift: 抛出异常

    很多代码都有try? 的关键字做法, 这是当有错误/无值的时候, 抛出异常。 这里用代码举例。 首先, 自定义一个...

  • swift异常处理

    swift像其他编程语言一样可以抛出异常并处理异常,本文就详细说一下在swift中抛出并处理异常,swift中的一...

  • 3、异常概述和继承体系 、异常原因以及处理方式 、运行时期异常

    01异常的概述 02异常的继续体系和错误的区别 03异常对象的产生原因和处理方式 04方法内部抛出对象throw关...

  • try...catch...finally...

    异常捕捉,一定要抛出对应的异常类型,否则外层异常可能捕捉不到比如方法②抛出IOException异常,方法②在方法...

  • 子类继承父类方法

    父类方法抛出异常,子类继承父类,重写父类方法时,抛出的异常“子类抛出的异常类型不能比父类抛出的异常类型更宽泛”。 ...

  • Swift - 异常处理

    说明 跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处...

  • Swift-异常处理四种方式

    跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能...

  • 异常基础:throws(4)

    我们将异常基础:异常捕获及自定义异常(2)里的Person类的setAge()方法改一下,让该方法将异常抛出thr...

  • swift 中异常的处理方法

    swift 中什么时候需要处理异常,在调用系统某个方法的时,该方法最后有一个throws 说明该方法会抛出异常,如...

网友评论

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

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