补充:错误处理和断言

1.错误处理

使用错误处理(error handling) 来应对程序执行中可能会遇到的错误条件。

func canThrowAnError() throws {
    // 这个函数有可能抛出错误
}
//  一个函数可以通过在声明中添加throws关键词来抛出错误消息。当你的函数能抛出错误消息时, 你应该在表达式中前置try关键词。

do {
    try canThrowAnError() // 没有错误消息抛出
} catch {
    // 有一个错误消息抛出
}
// 一个do语句创建了一个新的包含作用域,使得错误能被传播到一个或多个catch从句。 

2.断言

可选类型可以让你判断值是否存在,你可以在代码中优雅地处理值缺失的情况。然而,在某些情况下,如果值缺失或者值并不满足特定的条件,你的代码可能没办法继续执行。这时,你可以在你的代码中触发一个断言(asse rtion) 来结束代码运行并通过调试来找到值缺失的原因。

//你可以使用全局 assert(_:_:file:line:) 函数来写一个断言。向这个函数传入一个结果为 true 或者 false 的表达式以及一条信息,当表达式的结果
为false 的时候这条信息会被显示:

let age = -3
assert(age >= 0, "A person's age cannot be less than zero") 
// 因为 age < 0,所以断言会触发
何时使用断言

当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。
断言的适用情景:
1> 整数类型的下标索引被传入一个自定义下标实现,但是下标索引值可能太小或者太大。
2> 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
3> 一个可选值现在是 nil ,但是后面的代码运行需要一个非 nil 值。

你可能感兴趣的:(补充:错误处理和断言)