13-错误处理
2021-08-06 本文已影响0人
SwordDevil
错误类型
- 开发过程常见的错误
语法错误(编译报错)
逻辑错误
运行时错误(可能会导致闪退,一般也叫做异常)
......
自定义错误
do-catch
处理Error
try? 、try!
rethrows
defer
assert(断言)
- 很多编程语言都有断言机制:不符合指定条件就抛出运行时错误,常用于调试(Debug)阶段的条件判断
- 默认情况下,Swift的断言只会在Debug模式下生效,Release模式下会忽略
func divide(_ v1: Int, _ v2: Int) -> Int {
assert(v2 != 0, "除数不能为0")
return v1 / v2
}
print(divide(20, 0))
- 增加Swift Flags修改断言的默认行为
-assert-config Release:强制关闭断言
-assert-config Debug:强制开启断言
fatalError
局部作用域
- 可以使用do 实现局部作用域
do {
let dog1 = Dog()
dog1.age = 10
dog1.run()
}
do {
let dog2 = Dog()
dog2.age = 10
dog2.run()
}