Swift2.0-异常处理(Exception handler)
Swift2.0-异常处理(Exception handler)前言关于我们为什么要使用异常处理,请看百度百科为我们作出的描述,想要更详细的资料请点这里 异常处理,英文名为exceptional handling,是代替日渐衰落的error code方法的新法,提供error code 所未能具体的优势。异常处理分离了接收和处理错误代码。这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。
它有功能强大的控制流语句,像`do`、`try`、`catch`、`guard`和`defer`。我们能够使用这些关键字去操控我们的代码,更精确地执行我们的代码。
以上摘自百度百科: 关联,在 NSError *error = nil;
NSString *string = [[NSString alloc] initWithContentsOfFile:@"filePath" encoding:NSUTF8StringEncoding error:&error];
if (error != nil) {
// Exception handle
NSLog(@"Erorr is %@",error);
}
// Code...
不得不说, Demo你可以在 构建异常类型我们可以构建自己的异常类型,它只是一个枚举,遵循 enum MyErrorHandling: ErrorType {
case error1
case error2
}
定义函数可抛出异常这里值得一提的是,只有函数才能够抛出异常。我们需要在参数后和返回值前加上 func myLoad(item: String?) throws -> String {
guard let newItem = item else {
throw MyErrorHandling.error1
}
return newItem
}
捕获/处理异常我们使用 do {
try myLoad(nil)
} catch {
print("error")
}
如果只包含一个 do {
try myLoad(nil)
} catch let error as NSError {
print(error)
}
我们在使用 do {
try myLoad("test")
} catch MyErrorHandling.error1 {
print("error1")
} catch MyErrorHandling.error2 {
print("error2")
}
如果我们不需要捕抓错误,那么我们可以使用 try? myLoad(nil)
Defer(延迟执行)那么我们何时需要使用到 func myLoad(item: String?) throws -> String {
defer {
print("Handle 1")
}
defer {
print("Handle 2")
}
guard let newItem = item else {
throw MyErrorHandling.error1
}
return newItem
}
这里再说一下,你可以在 声明博文作者:GarveyCalvin (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |