美文网首页swift
swift中异常处理try,throw学习小心得

swift中异常处理try,throw学习小心得

作者: 顺扬sky | 来源:发表于2018-01-11 20:09 被阅读32次

swift中异常处理try,throw学习小心得

try,throw 引入

错误处理是对程序中的错误条件进行响应和恢复的过程。Swift提供了在运行时抛出、捕获、传播和操作可恢复错误的一流支持。

Error handling is the process of responding to and recovering from error conditions in your program. Swift provides first-class support for throwing, catching, propagating, and manipulating recoverable errors at runtime.

[苹果官方文档][1]
[1]:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html

举例说明使用方式

一,简单的取值异常获取

创建user字典

// 创建字典
let user:[String:Any] = ["name":"yang", "age":20]

正常获取值

let name = user["name"] as! String

当字典中不存在key

let name = user["xiaoming"] as! String  // 此时会报error

安全的取值方法

func getValueByKey(key:String){
    guard let name = user[key] else {
          print("取值失败")
        return // throw
    }
    print(name)
}
getValueByKey(key: "name")
getValueByKey(key: "xiaoming")

打印的值

yang
取值失败

二,函数中的异常获取

枚举异常原因

enum UserError:Swift.Error{
    case noKey(message:String)         // key 无效
    case ageBeyond     // 年级超出
}

定义函数

func testAction() throws{
    guard let name = user["name"] else {
        print("取值失败")
        throw UserError.noKey(message: "没有此人")
    }
    guard let value = user["age"] else {
        throw UserError.noKey(message: "年龄无效")
    }
    let ageValue = value as! Int
    
    guard ageValue > 100 else{
        throw UserError.ageBeyond
    }
}

函数调用,抛出异常

func getUser() throws {
    do{
        try testAction()
    }catch let UserError.noKey(message){
        print("error:\(message)")
    }catch UserError.ageBeyond{
        print("年龄不合适")
    }catch{
        print("other error")
    }
}

使用函数

try getUser()

打印

年龄不合适

三, 写在最后

菜鸟一枚,望各位大佬指点.(一直在学习中....)

相关文章

  • swift中异常处理try,throw学习小心得

    swift中异常处理try,throw学习小心得 try,throw 引入 错误处理是对程序中的错误条件进行响应和...

  • 学习笔记8-异常处理

    异常处理 使用try和catch处理异常 抛出异常 通过throw关键字来抛出异常,执行到throw语句后,函数会...

  • Swift-错误处理

    Swift-错误处理 关键字: throws、throw、 try、 try?、 try!、 do-catch、d...

  • php源码-try、catch过程-原理

    在php中我们通过try catch 捕获异常, 通过 throw来抛出异常, 优秀文章推荐:异常处理 先来说说...

  • 11月3日C#学习总结

    今天学习了异常处理机制,主要就是C#常用的异常类、try、catch和finally关键字处理异常和throw关键...

  • Spring的全局异常处理

    常见的异常处理除了一般的try.....catch以及throw,Spring中也提供了异常处理的方法,下面我就简...

  • Flutter/Dart - 异常处理

    异常处理 dart 使用经典的try-catch处理异常,使用关键字throw抛出一个异常。 抛出异常 首先,看看...

  • swift throws异常处理

    Swift中throw和rethrows关键字用于异常处理(Error handling) 对于可能的异常通常可以...

  • Node.js错误处理一些思路

    Node.js中的错误 JavaScript的任何throw机制的使用都会引起异常,异常处理必须用try/catc...

  • day09_面向对象_异常

    处理异常的两种方式:try...catch....finally throw //抛出try{可能出现问题的代码...

网友评论

    本文标题:swift中异常处理try,throw学习小心得

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