20170621进阶知识-错误处理

1、do-try-catch:先尝试操作,如果失败则处理错误,完成后释放资源。

do {

try 语句

成功处理语句组

} catch 匹配错误 {

错误处理语句组

}

2、Swift错误类型必须遵从Error协议

enum DAOError:Error {

case noData

case primaryKeyNull

}

3、声明抛出错误

方法没有返回值,throws关键字放在参数后面

func remove(_ model: Note) throws { }

方法有返回值,throws关键字放到参数和返回值之间

func findAll() throws -> [Note] { }

4、在函数或方法中抛出错误

①在函数或方法中,通过throw语句认为的抛出错误

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

5、throw和throws区别

throw关键字用于在方法或函数内,人为地抛出错误,而非系统抛出的错误。

throw后面跟有抛出的错误类型。

throws关键字用于方法或函数声明抛出错误,声明了抛出错误的方法或函数可以不处理错误,有错误发生后则将错误传播给它的调用者。

6、try、try?和try!区别

try与do-catch语句配合使用,进行错误捕获处理。

try?语句将错误转换为可选类型,如果有错误发生则nil被返回。

try!语句可以打破错误传播链条,但是如果真的发生错误就出现运行期错误,导致程序的崩溃。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容