码迷,mamicode.com
首页 > 编程语言 > 详细

Swift学习:错误处理

时间:2017-12-25 01:04:14      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:文件   swift   取数   硬币   额外信息   pos   val   处理   select   

  错误处理(Error handling)是响应错误以及从错误中恢复的过程。Swift 提供了在运行时对可恢复错误的抛出、捕获、传递和操作的一等公民支持。

  某些操作无法保证总是执行完所有代码或总是生成有用的结果。可选类型可用来表示值缺失吗,但是当某个操作失败时,最好能得知失败的原因,从而可以作出相应的应对。

  举个例子,假如有个从磁盘上的某个文件读取数据并进行处理的任务,该任务会有多种可能失败的情况,包括指定路径下文件并不存在,文件不具有可读权限,或者文件编码格式不兼容。区分这些不同的失败情况可以让程序解决并处理某些错误,然后把它解决不了的错误报告给用户。

  注意

  swift 中的错误处理涉及到错误处理模式,这会用到 Cocoa 和 Objective-C 中的 NSError。

  表示并抛出错误

  在 swift 中,错误用符合 Error 协议的类型的值来表示。这个空协议表明该类型可以用于错误处理。

  swift 的枚举类型尤为适合构建一组相关的错误状态,枚举的关联值还可以提供错误状态的额外信息。例如,你可以这样表示在一个游戏中操作自动贩卖时可能出现的错误状态:

  enum VendingMachineError: Error {

    case invalidSelection // 选择无效

    case insufficientFunds(coinsNeeded: Int) // 金额不足

    case outOfStock // 缺货

  }

  抛出一个错误可以让你表明有意外情况发生,导致正常的执行流程无法继续执行。抛出错误使用 throw 关键字。例如,下面的代码抛出一个错误,提示贩卖机还需要 5 个硬币:

  throw VendingMachineError.insufficientFunds(coinsNeeded: 5)

  处理错误

  某个错误被抛出时,附近的某部分代码必须负责处理这个错误,例如纠正这个问题、尝试另一种方式、或是向用户报告错误。

  

  

Swift学习:错误处理

标签:文件   swift   取数   硬币   额外信息   pos   val   处理   select   

原文地址:http://www.cnblogs.com/chmhml/p/8099490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!