swift 中异常的处理方法

swift 中什么时候需要处理异常,在调用系统某个方法的时,该方法最后有一个throws 说明该方法会抛出异常,如果一个方法抛出异常,那么需要对该异常进行处理

swift 异常处理提供了三种方法

方式一: try  ,程序员手动处理异常

do {

let regx = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive)

} catch {

//系统给我们提供了一个临时常量 error

//在这里处理异常

print(error)

}

方式二: try? , 系统帮助我们处理异常,如果该出现了异常,则该方法返回 nil ,则返回对应的对象

guard let regx = try? NSRegularExpression(pattern: pattern, options: .CaseInsensitive) else {

return

}

方式三: try! ,(危险)该方法直接告诉系统该方法没有异常,如果出现了异常,则程序会崩溃

let regx = try! NSRegularExpression(pattern: pattern, options: .CaseInsensitive)

时间: 2024-10-13 12:05:50

swift 中异常的处理方法的相关文章

swift中通知的使用方法

其实swift语言和OC语言,在本质上都是一样,其里面的方法之类的也基本相同.通知的使用方法也是一样,只是代码的书写格式发生了改变而已.下面我通过一个简单的小需求,也讲一讲通知,用swift中的闭包,也能完成此功能. 使用通知需要注意事项: 1,先确保接收中心存在,在设置通知中心. 2,最后一定要移除通知中心. 3,通知也是可以传值的,放在userInfo里面. 具体界面效果,我在这里就不截图了,希望各位开发者,自己写一遍,然后运行. ViewController // //  ViewCont

在 Swift 中实现单例方法

我们通常在进行开发的时候,会用到一个叫做 单例模式 的东西.相信大家也都对这种模式非常熟悉了.而且单例的使用在平时的开发中也非常频繁. 比如我们常用到的 NSUserDefaults.standardUserDefaults(). 在 Swift 中我们如何实现单例模式呢?如果你曾经对 Objective-C 比较熟悉的话,你可能首先会想到这样写: class DBManager { class var instance: DBManager? class func sharedInstance

在Swift中实现单例方法

在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: 1 + (instancetype)sharedSingleton{ 2 static id instance; 3 4 static dispatch_once_t onceToken; 5 dispatch_once(&onceToken, ^{ 6 instance = [[self alloc] init]; 7 }); 8 return instance; 9 } 首先可以考虑仿照OC中的写法写一个. 因此S

Swift中编写单例的正确方式

Swift中编写单例的正确方式 2015-12-07 10:23 编辑: yunpeng.hu 分类:Swift 来源:CocoaChina翻译活动 14 10647 Objective-CSwift单例 招聘信息: Cocos2d-x 工程师 cocos2dx手游客户端主程 wp开发 iOS开发工程师 iOS软件工程师 iOS研发工程师 iOS讲师 iOS开发工程师 iOS高级开发工程师 iOS 高级软件工程师 iOS高级开发工程师 本文由CocoaChina译者leon(社区ID)翻译自kr

Swift Explore - 关于 Swift 中的 isEqual 的一点探索

在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等. 我们来看一个 Objective-C 的例子就会更加明白了: NSArray *arr1 = @[@"cat",@"hat",@&qu

Swift开发第八篇——方法嵌套&命名空间

本篇分为两部分: 一.Swift中的方法嵌套 二.Swift中的命名空间 一.Swift中的方法嵌套 在 swift 中我们可以让方法嵌套方法,如: func appendQuery(var url: String, key: String, value: AnyObject) -> String { func appendQueryDictionary(url: String, key: String, value: [String: AnyObject]) -> String { //..

OC & Swift中UITextFiled、UITextView限制输入字数

OC中限制字数的方法 我是用通知实现的,首先添加UITextFiled和UITextView的接收中心 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewNotifitionAction:) name:UITextViewTextDidChangeNotification object:nil]; [[NSNotificationCenter defaultCenter] addOb

Swift 中 Selector 方法的访问权限控制问题

今天用Swift写了个视图,在视图上加个手势,如下所示: 1 2 panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "beginDragged:") addGestureRecognizer(panGestureRecognizer) 运行了下程序,然后崩溃了.崩溃日志如下: 1 [**.SwipeCardView beginDragged:]: unrecognized selector sent 

Swift中的init方法

摘要:Swift有着超级严格的初始化方法,不仅强化了designated初始化方法的地位,所有不加修饰的init方法都需要在方法中确保非Optional的实例变量被赋值初始化,而在子类中,也强制调用super版本的designated初始化. 我们在深入初始化方法之前,不妨先再想想Swift中的初始化想要达到一种怎样的目的. 其实就是安全.在Objective-C中,init方法是非常不安全的:没有人能保证init只被调用一次,也没有人保证在初始化方法调用以后,实例的各个变量都完成初始化,甚至如