swift throws 捕获异常
2016-04-12 13:54
423 查看
enum MyErrorType:ErrorType {
case error1NameisNil
case error2NameLengthis0
}
func testThrows (name:String?)
throws {
guard name !=
nil else {
throw
MyErrorType.error1NameisNil
}
guard name!.characters.count >
0 else {
throw
MyErrorType.error2NameLengthis0
}
print("\(name)")
}
//我们不需要捕抓错误,那么我们可以使用try!或try?去执行该函数
//不建议使用try!,使用try?会更加安全。因为如果当有错误捕抓到时,程序会直接崩溃
try? testThrows("")
//如果只包含一个catch语句,那么所有的错误都会在这个catch中执行,我们能够捕抓其错误信息
do {
try
testThrows(nil)
} catch let error
as NSError {
print(error)
}
do {
try
testThrows("")
} catch let error
as NSError {
print(error)
}
//我们在使用catch时,它是能够进行模式匹配的,我们能够进行更精准的错误匹配处理
do {
try
testThrows("")
} catch MyErrorType.error1NameisNil {
print("error1NameisNil")
} catch MyErrorType.error2NameLengthis0 {
print("error2NameLengthis0")
}
case error1NameisNil
case error2NameLengthis0
}
func testThrows (name:String?)
throws {
guard name !=
nil else {
throw
MyErrorType.error1NameisNil
}
guard name!.characters.count >
0 else {
throw
MyErrorType.error2NameLengthis0
}
print("\(name)")
}
//我们不需要捕抓错误,那么我们可以使用try!或try?去执行该函数
//不建议使用try!,使用try?会更加安全。因为如果当有错误捕抓到时,程序会直接崩溃
try? testThrows("")
//如果只包含一个catch语句,那么所有的错误都会在这个catch中执行,我们能够捕抓其错误信息
do {
try
testThrows(nil)
} catch let error
as NSError {
print(error)
}
do {
try
testThrows("")
} catch let error
as NSError {
print(error)
}
//我们在使用catch时,它是能够进行模式匹配的,我们能够进行更精准的错误匹配处理
do {
try
testThrows("")
} catch MyErrorType.error1NameisNil {
print("error1NameisNil")
} catch MyErrorType.error2NameLengthis0 {
print("error2NameLengthis0")
}
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Ruby中的异常处理代码编写示例
- MySQL抛出Incorrect string value异常分析
- 浅谈C#中简单的异常引发与处理操作
- Ajax Throws Sys.WebForms.PageRequestManagerErrorException with Response.Redirect的解决方法
- 详解C#编程中异常的创建和引发以及异常处理
- 详解JavaScript中的异常处理方法
- java程序中的延时加载异常及解决方案
- 解析Java异常的栈轨迹及其相关方法
- .NET(C#):Emit创建异常处理的方法
- windows7服务器上weblogic启动失败异常解决方法
- 有关ajax的error与后台的异常问题解决
- 深入探讨JAVA中的异常与错误处理
- GO语言异常处理机制panic和recover分析
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- 浅谈JAVA 异常对于性能的影响