原创文章,欢迎转载。转载请注明:关东升的博客
能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误。
声明抛出错误方法示例代码如下:
//删除Note记录方法 func remove(model: Note) throws { ... } //查询所有记录数据方法 func findAll() throws -> [Note] { ... }
上述代码remove(_:)方法没有返回值,throws关键字放到参数后面。findAll()有返回值throws关键字放到参数和返回值类型之间。
在函数或方法中抛出错误
一个函数或方法能够声明抛出错误,是因为在函数或方法中产生并抛出了错误,这样函数或方法声明抛出错误才有实际的意义。
在产生并抛出错误方式:
<!--[if !supportLists]-->l <!--[endif]-->在函数或方法中通过throw语句,人为地抛出错误。
<!--[if !supportLists]-->l <!--[endif]-->在函数或方法中调用的其他可以抛出错误函数或方法,但是没有捕获处理,会导致错误被传播出来。
示例代码如下:
//删除Note方法 func remove(model: Note) throws { guard let date = model.date else { //判断抛出时候是有了guard语句 //抛出"主键为空"错误 throw DAOError.PrimaryKeyNull } //比较日期主键是否相等 for (index, note) in listData.enumerate() where note.date == date { listData.removeAtIndex(index) } } //查询所有数据方法 func findAll() throws -> [Note] { guard listData.count > 0 else { //判断抛出时候是有了guard语句 //抛出"没有数据"错误。 throw DAOError.NoData } return listData } func printNotes() throws { //声明抛出错误 let datas = try findAll() for note in datas { print("date : \(note.date!) - content: \(note.content!)") } } try printNotes()
guard语句最擅长处理这种早期判断,条件为false情况下抛出错误。
findAll()语句本身有可能产生错误,但是并没有使用catch语句捕获并处理,这样就导致了这个错误传播给该函数或方法的调用者,如果它的调用者也都不捕获处理,那么最后程序会出现运行期错误。
相关推荐
从零开始学swift,图灵原创,关东升著。基于swift2.x。2016年3月版
最新的关于学习swift开发的书籍,讲的非常好
Swift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习...
以下是从零开始学习SwiftUI的一些建议: 了解Swift语言基础:SwiftUI是用Swift语言编写的,因此了解Swift语言的基础知识是非常重要的。你可以从苹果官方文档、在线教程或书籍中学习Swift语言。 学习SwiftUI基本概念...
精选Swift相关的学习笔记与资料集合打包上传给大家,这里的笔记非常的容易看得懂,基本上学习编程的看这一堆东西就能很快上上手了,非常的实用。
Swift学习的笔记,总结性的东西,很实用,非常适合新手看,之前学过OC的朋友基本上一看就能上手,非常的实用。
swift 学习笔记 之 扩展
学习swift的笔记,自己记录的,必须50字,凑够了算,谢谢
NULL 博文链接:https://duchengjiu.iteye.com/blog/2184242
贝塞尔曲线使用——模拟心跳曲线
swift 学习笔记 之 函数 编程题
IOS开发-Swift-基础知识学习笔记
ios开发 swift语言学习资料,入门学习,简单易懂;ios开发 swift语言学习资料,入门学习,简单易懂
学习swift的笔记,部分代码来自教程。打包的playground方便学习和查看效果。
目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常...
Swift学习笔记 更新日志 学习资料 《The Swift Programming Language》中文版
Swift学习资料
Swift 学习资料.zip,在Playgrounds上编写的Apple Swift语言摘要
Swift_100days, 从 [100 Days of Swift ] 学习 Swift Swift_100days如果你刚刚开始学习swift,的话,我建议你从 3.0开始学习 Swift ~ !我开始学习 Swift,因为接下来的天,我 。这是我按天排序的演示,如果我有时间...
swift学习控件篇:UITableview