Swift的异常处理

一.异常的介绍

 .只要我们在编程,就一定要面对错误处理的问题.

.Swift在设计的时候就尽可能让我们明确感知错误,明确处理错误

.比如:只有使用Optional才能处理空值;

.如何描述一个错误?

         在Swift里,任何一个遵从ErrorType protocol的类型,都可以用于描述错误

         ErrorType是一个空的protocol,它唯一功能就是告诉Swift编译器,某个类型用来表示一个错误

         通常我们用enum来定义各种错误的可能性

二.异常的示例

假如我们想要读取一个文件中的内容,按照OC的逻辑我们可以这样来模拟

当我们调用方法获取结果为nil时,你并不能确定到底参数了什么错误得到了nil

func   readFileContent(filePath : String)->String? {

// 1.filePath为

if  filePath ==""{return nil}

// 2.filepath有值,但是没有对应的文件

if filePath !="/User/Desktop/123.plist"{return nil}

// 3.取出其中的内容

return "123"}

readFileContent("abc")

 - 使用异常对上述方法进行改进

// 1.定义异常

enum FileReadError:ErrorType{

case  FileISNull

case  FileNotFound}

// 2.改进方法,让方法抛出异常

func readFileContent(filePath : String)throws->String{

// 1.filePath为""

if filePath ==""{

throw FileReadError.FileISNull}

// 2.filepath有值,但是没有对应的文件

if filePath !="/User/Desktop/123.plist"{

throw FileReadError.FileISNull}

// 3.取出其中的内容

return"123"}

三.处理异常有三种方式

3.异常的处理三种方式

3.1.try方式,需要手动处理异常

do{

let  result =try readFileContent("abc")

}catch{

print(error)}

3.2.try?方式,不处理异常,如果出现了异常,则返回一个nil.没有异常,则返回对应的值

最终返回结果为一个可选类型

let result =try? readFileContent("abc")

3.3.try!方法,告诉系统该方法没有异常.

注意:如果出现了异常,则程序会崩溃

try! readFileContent("abc")

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,510评论 19 139
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,552评论 3 25
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,958评论 18 399
  • 1、范型范型所解决的问题 函数、方法、类型:类,结构体,枚举,元组类型,协议参数,返回值,成员函数参数,成员属性类...
    我是小胡胡123阅读 4,328评论 0 1
  • 这学期我总在想,到底是我成就了自己,还是学生会成就了我。 它给了我很多,也夺走了我很多。
    不作妖的你真可爱阅读 2,555评论 0 0