《从零开始学Swift》学习笔记(Day54)――抛出错误

《从零开始学Swift》学习笔记(Day54)――抛出错误,第1张

概述原创文章,欢迎转载。转载请注明:关东升的博客      能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误。     声明抛出错误方法示例代码如下: //删除Note记录方法func remove(model: Note)throws {  ...}//查询所有记录数据方法func fi

原创文章,欢迎转载。转载请注明:关东升的博客

能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误。

声明抛出错误方法示例代码如下:

//删除Note记录方法funcremove(model:Note)throws{...}//查询所有记录数据方法funcfindAll()throws->[Note]{...}


上述代码remove(_:)方法没有返回值,throws关键字放到参数后面。findAll()有返回值throws关键字放到参数和返回值类型之间。

在函数或方法中抛出错误

一个函数或方法能够声明抛出错误,是因为在函数或方法中产生并抛出了错误,这样函数或方法声明抛出错误才有实际的意义。

在产生并抛出错误方式:

在函数或方法中通过throw语句,人为地抛出错误。

在函数或方法中调用的其他可以抛出错误函数或方法,但是没有捕获处理,会导致错误被传播出来。

示例代码如下:

//删除Note方法funcremove(model:Note)throws{guardletdate=model.dateelse{//判断抛出时候是有了guard语句//抛出"主键为空"错误throwDAOError.PrimaryKeyNull}//比较日期主键是否相等for(index,note)inListData.enumerate()wherenote.date==date{ListData.removeAtIndex(index)}}//查询所有数据方法funcfindAll()throws->[Note]{guardListData.count>0else{//判断抛出时候是有了guard语句//抛出"没有数据"错误。throwDAOError.NoData}returnListData}funcprintNotes()throws{//声明抛出错误letdatas=tryfindAll()fornoteindatas{print("date:\(note.date!)-content:\(note.content!)")}}tryprintNotes()


guard语句最擅长处理这种早期判断,条件为false情况下抛出错误。

findAll()语句本身有可能产生错误,但是并没有使用catch语句捕获并处理,这样就导致了这个错误传播给该函数或方法的调用者,如果它的调用者也都不捕获处理,那么最后程序会出现运行期错误。

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息

650) this.width=650;" title="00.png" src="http://img.jb51.cc/vcimg/static/loading.png" alt="wKioL1bc88ShW-b4AAAs2MBEZnc846.png" src="http://s1.51cto.com/wyfs02/M02/7C/EF/wKioL1bc88ShW-b4AAAs2MBEZnc846.png">

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com智捷课堂论坛网站:http://51work6.com/forum.php

总结

以上是内存溢出为你收集整理的《从零开始学Swift》学习笔记(Day54)――抛出错误全部内容,希望文章能够帮你解决《从零开始学Swift》学习笔记(Day54)――抛出错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078956.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存