Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
252
5
败,那么
Cocoa
会向你发送一个
NSError
实例。还可以通过调用其指定初始化器
init(domain:code:userInfo:)
创建自己的
NSError
实例。
使用了
ErrorType
Swift
类型
如果一个类型使用了
ErrorType
协议,那么就可以将其作为错误对象;在背后,协议
的要求会神奇般地得到满足。一般来说,该类型是个枚举,它会通过其
case
来与消
息通信:不同的
case
会区分不同类型的失败,也许一些原始值或关联值还会持有更
多的信息。
有两个错误机制阶段需要考虑:抛出错误与捕获错误。抛出错误会终止当前的执行路径,
并将错误对象传递给错误处理机制。捕获错误会接收错误对象并对其进行响应,在捕获
点后执行路径会继续。实际上,我们会从抛出点跳转到捕获点。
要想抛出错误,请使用关键字
throw
并后跟错误对象。这会导致当前代码块终止执行,
同时错误处理机制会介入。为了确保
throw
命令的使用能够做到前后一致,
Swift
应用
了一条规则,你只能在如下两个地方使用
throw
do...catch
结构的
do
块中
do...catch
构至少包含了两个块,即
do
块与
catch
块。该结构的要点在于
catch
块可以接收
do
块所抛出的任何错误。因此,我们就可以前后一致地处理这种错误,
错误可以被捕获到。稍后将会更加详尽地介
do...catch
构。
在标记了
throws
的函数中
如果不在
do...catch
构的
do
块中抛出错误,或在
do
块中抛出了错误,但
catch
块没有将其捕获,那么错误消息就会跳出当前函数。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350