在调用一个函数时,如果发现该函数最后有一个 throws,表示该函数可能会抛出异常,处理方式有三种 try try? try! 这里以创建正则表达式抛出的异常为例
1.创建匹配规则
let str = "dafdfalkycdfdffgabcggglkygwerw"
let pattern = "lky"
2.创建正则表达式对象
2.1 try 捕捉异常,并且进行处理
do {
let regex = try NSRegularExpression(pattern: pattern, options: [])
let results = regex.matchesInString(str, options: [], range: NSRange(location: 0, length: str.characters.count))
for result in results {
print((str as NSString).substringWithRange(result.range))
}
} catch {
print(error)
}
2.2 try? 系统会自动处理异常, 返回一个可选类型(如果有异常则返回一个 nil,如果没有异常则返回对应的值)
let regex = try? NSRegularExpression(pattern: pattern,options: [])
2.3 try! 告诉系统该函数不会有异常 直接返回值 ps:有异常则程序崩溃
let regex = try! NSRegularExpression(pattern: pattern,options: [])
3.匹配内容
let results = regex.matchesInString(str, options: [], range: NSRange(location: 0, length: str.characters.count))
for result in results {
print(result.range)
print((str as NSString).substringWithRange(result.range))
}
4.打印结果
**(6,3)**
**lky**
**(22,3)**
**lky**