美文网首页
Swfit之try、throw与do catch

Swfit之try、throw与do catch

作者: 萤火驻守心间 | 来源:发表于2022-05-19 17:58 被阅读0次

    throws: 表明抛出异常,搭配try时需要使用do-catch处理掉异常;使用try?有异常返回空,类似于可选解包;使用try!相当于强制解包,有异常会闪退
    try:相当于异常处理工具,常和throw配合使用,作用同上
    do-catch:异常处理器,如果方法中抛出异常,我们就在catch中将异常安全的处理掉。

    enum SomeError : Error {
                case ary(String)
                case outOfBounds(Int,Int)//越界
                case outOfMemory//内存溢出
            }
        func divide(_ v1: Int,_ v2:Int) throws -> Int{
                if v2 == 0 {
                    throw SomeError.ary("0不能作为除数")
                }
                return v1/v2
            }
        func test1(){
                do {
                    try divide(10, 0)
                } catch let SomeError.ary(msg) {
                    print("参数错误",msg)
                } catch let SomeError.outOfBounds(size, int){
                    print("数组越界\(size)和\(int)")
                } catch SomeError.outOfMemory {
                    print("内存溢出")
                } catch {
                    print("其他错误")
                }
            }
    

    相关文章

      网友评论

          本文标题:Swfit之try、throw与do catch

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