Swift

23.Swift学习之访问权限、异常

2018-11-20  本文已影响86人  YungFan

模块和源文件

访问权限

注意

异常

异常处理

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(filePath: "abc")
// 1.定义异常
enum FileReadError : Error {
    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.FileNotFound
    }    
    // 3.取出其中的内容
    return "123"
}
  1. do try catch方式,需要手动处理异常(建议使用)
do {
    let result = try readFileContent(filePath: "abc")
} catch {
    //有一个隐含参数 error
    print(error)
}
  1. try?方式,不处理异常,如果出现了异常,则返回一个nil.没有异常,则返回对应的值
// 最终返回结果为一个可选类型
let result = try? readFileContent(filePath: "abc")
  1. try!方式,告诉系统该方法没有异常,一旦如果出现了异常,则程序会直接崩溃
let result = try! readFileContent(filePath: "abc")
do{
    //虽然写在前面 但后执行
    defer {
        print("执行defer")
    }
   print("Hello")
   try readFileContent(filePath: "")
   print("World")
}

catch{    
    print(error)
}
//打印信息
//Hello
//执行defer
//FileISNull
上一篇下一篇

猜你喜欢

热点阅读