美文网首页
Swift的异常处理

Swift的异常处理

作者: Amok校长 | 来源:发表于2016-11-04 14:44 被阅读0次

    一.异常的介绍

     .只要我们在编程,就一定要面对错误处理的问题.

    .Swift在设计的时候就尽可能让我们明确感知错误,明确处理错误

    .比如:只有使用Optional才能处理空值;

    .如何描述一个错误?

             在Swift里,任何一个遵从ErrorType protocol的类型,都可以用于描述错误

             ErrorType是一个空的protocol,它唯一功能就是告诉Swift编译器,某个类型用来表示一个错误

             通常我们用enum来定义各种错误的可能性

    二.异常的示例

    假如我们想要读取一个文件中的内容,按照OC的逻辑我们可以这样来模拟

    当我们调用方法获取结果为nil时,你并不能确定到底参数了什么错误得到了nil

    func   readFileContent(filePath : String)->String? {

    // 1.filePath为

    if  filePath ==""{return nil}

    // 2.filepath有值,但是没有对应的文件

    if filePath !="/User/Desktop/123.plist"{return nil}

    // 3.取出其中的内容

    return "123"}

    readFileContent("abc")

     - 使用异常对上述方法进行改进

    // 1.定义异常

    enum FileReadError:ErrorType{

    case  FileISNull

    case  FileNotFound}

    // 2.改进方法,让方法抛出异常

    func readFileContent(filePath : String)throws->String{

    // 1.filePath为""

    if filePath ==""{

    throw FileReadError.FileISNull}

    // 2.filepath有值,但是没有对应的文件

    if filePath !="/User/Desktop/123.plist"{

    throw FileReadError.FileISNull}

    // 3.取出其中的内容

    return"123"}

    三.处理异常有三种方式

    3.异常的处理三种方式

    3.1.try方式,需要手动处理异常

    do{

    let  result =try readFileContent("abc")

    }catch{

    print(error)}

    3.2.try?方式,不处理异常,如果出现了异常,则返回一个nil.没有异常,则返回对应的值

    最终返回结果为一个可选类型

    let result =try? readFileContent("abc")

    3.3.try!方法,告诉系统该方法没有异常.

    注意:如果出现了异常,则程序会崩溃

    try! readFileContent("abc")

    相关文章

      网友评论

          本文标题:Swift的异常处理

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