Swift中的异常处理有三种方式
- 方式一 : try 方式,程序员手动捕获异常,但是这种方式不是很方便.
do {
// 使用 try 方式处理.
let regex1 = try NSRegularExpression(pattern: "abc", options: .caseInsensitive)
} catch{
print(error)
}
(1) do中包裹的是可能发生异常的代码.
(2) catch 中是发生异常时要这行的代码.
- 方式二(不建议使用,很危险) : try! 方式,表明此处一定不会抛出异常,但是这种方式很危险,一旦有异常抛出程序就会崩溃.
// 使用 try!
let regex2 = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
这种方式,只有当你确定不会产生异常时才可以使用,因为使用这种方式如果一旦发生异常程序便会崩溃.
- 方式三 (常用): try? 方式,系统帮助我们处理异常,如果发生异常,将返回nil,否则返回对象.
// 使用 try?
guard let regex3 = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive) else {
return
}
这种方式其实就是讲异常转换成了可选值,如果发生异常就返回 nil.