补充一些缺失标题链接

This commit is contained in:
Jax Wu
2019-03-27 14:59:18 +08:00
parent 3acdfbca8c
commit 7b603a307f
7 changed files with 21 additions and 22 deletions

View File

@ -128,7 +128,7 @@ struct PurchasedSnack {
}
```
### 用 Do-Catch 处理错误
### 用 Do-Catch 处理错误 {#handling_errors_using_do-Catch}
你可以使用一个 `do-catch` 语句运行一段闭包代码来处理错误。如果在 `do` 子句中的代码抛出了一个错误,这个错误会与 `catch` 子句做匹配,从而决定哪条子句能处理它。
@ -194,7 +194,7 @@ do {
如果 `vend(itemNamed:)` 抛出的是一个 `VendingMachineError` 类型的错误,`nourish(with:)` 会打印一条消息,否则 `nourish(with:)` 会将错误抛给它的调用方。这个错误之后会被通用的 `catch` 语句捕获。
### 将错误转换成可选值
### 将错误转换成可选值 #{converting_errors_to_optional_values}
可以使用 `try?` 通过将错误转换成一个可选值来处理错误。如果是在计算 `try?` 表达式时抛出错误,该表达式的结果就为 `nil`。例如,在下面的代码中,`x``y` 有着相同的数值和等价的含义:
@ -225,7 +225,7 @@ func fetchData() -> Data? {
}
```
### 禁用错误传递
### 禁用错误传递 #{disabling_error_propagation}
有时你知道某个 `throwing` 函数实际上在运行时是不会抛出错误的,在这种情况下,你可以在表达式前面写 `try!` 来禁用错误传递,这会把调用包装在一个不会有错误抛出的运行时断言中。如果真的抛出了错误,你会得到一个运行时错误。