美文网首页
Swift的异常处理

Swift的异常处理

作者: Amok校长 | 来源:发表于2016-11-04 14:44 被阅读0次

一.异常的介绍

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

.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")

相关文章

  • swift异常处理

    swift像其他编程语言一样可以抛出异常并处理异常,本文就详细说一下在swift中抛出并处理异常,swift中的一...

  • Swift-异常处理四种方式

    跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能...

  • SQLite.swift的使用

    知识储备:swift中异常处理 SQLite.swift这个库中有很多的异常处理,详细了解请点击下面的地址: Sw...

  • Swift - 异常处理

    说明 跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处...

  • Swift备忘

    Swift初体验 Swift Tips Swift三种不同的【异常处理方式】 Swift 3.0 private变...

  • Swift 中的异常抛出和错误处理

    Swift 中的异常抛出和错误处理

  • Swift 处理异常

    处理方式 定义异常类型 在 Swift 中,错误用符合Error协议的类型的值来表示。这个空协议表明该类型可以用于...

  • swift——异常处理

    FileManager.swift ViewController.swift

  • swift 异常处理

    序言 对异常的正确处理能够明确反映在代码执行中出现的问题,使得在接下来的debug快速定位问题所在的地方,提高de...

  • Swift 异常处理

    异常的由来 在写代码的过程中,我们不能保证自己的每一行代码,都能够正确地执行。不能保证每一个函数,都会返回我们所期...

网友评论

      本文标题:Swift的异常处理

      本文链接:https://www.haomeiwen.com/subject/tzxwuttx.html