美文网首页
Swift - 异常处理

Swift - 异常处理

作者: ProfessorFan | 来源:发表于2018-09-06 21:16 被阅读13次
sun.png
苹果官方文档 -异常处理
中国官方文档 - 异常处理

说明

跟其它语言一样,Swift的异常处理是在程序抛出异常后的处理逻辑。 Swift提供了一流的异常抛出、捕获和处理的能力。跟Java语言类似, Swift的异常并不是真正的程序崩溃, 而是程序运行的一个逻辑分支;Swift和Java捕获异常的时序也是一样的。当Swift运行时抛出异常后并没有被处理, 那么程序就会崩溃。

在Swift语言中使用Error表示异常, 作用同Java的Exception类或Object-C的NSError类。 苹果建议使用枚举作为异常类型(为什么不推荐用类或者结构体?答案是枚举数据类型本身就是分成若干种情况,很适合做逻辑分支判断条件)。

1.定义错误枚举:注意Swift的所有异常类型都继承于Error

  enum ErrorCollection:Error {
            
            case errorOne
            
            case errorTwo
            
            case errorThree
        }

2.定义一个异常函数,只需要在函数的参数后面 添加一个 throws 就可以了(如果函数有返回值,需要在 -> 的前面)

 func canThrowErrors(type:Int) throws -> (String) {
     
//有关于 defer  关键字,就是抛出异常之后会执行的语句,              
   defer {
                
                print("error:\(type)")
            }

    switch type {
            case 1:
                throw ErrorCollection.errorOne
                
            case 2:
                throw ErrorCollection.errorTwo
                
            case 3:
                throw ErrorCollection.errorThree
            default:
                
                break

            }
            
            return "success"
        }

3.异常处理的使用 do catch ,如果得知 " let hh = try canThrowErrors(type: 1)" 抛出异常,我们不希望执行 后面的语句,我们就要使用 try 如果抛出异常也要执行 后面的语句,我们就要使用 try ?,try! 使用不当会让程序奔溃(除非你肯定这句代码不会抛出异常,你就可以用try !)

注意:如果try语句抛出异常则会跳出do代码块,并按顺序逐个catch,当一个catch捕获成功后,后面的catch不再执行

 do {
            let hh = try canThrowErrors(type: 1)
            
            print(hh)
            
            if hh != nil {
                
                print("error:\(hh)")
            }
            
        } catch ErrorCollection.errorOne {
            
            print(ErrorCollection.errorOne)

        }catch ErrorCollection.errorTwo {

            print(ErrorCollection.errorTwo)

        }catch {

            print("error")
            
        }
    
    }

SuperD总结

1.Swift 异常处理是为了让我们程序更安全,平常开发用处不多

相关文章

  • 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 中,错误用符合Error协议的类型的值来表示。这个空协议表明该类型可以用于...

  • swift——异常处理

    FileManager.swift ViewController.swift

  • swift 异常处理

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

  • Swift 异常处理

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

  • Swift - 异常处理

    Swift提供了一流的异常抛出、捕获和处理 能力,跟JAVA语言类似。Swift的异常并不是真正的程序崩溃, 而是...

网友评论

      本文标题:Swift - 异常处理

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