Swfit之try、throw与do catch

2022-05-19  本文已影响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("其他错误")
            }
        }
上一篇下一篇

猜你喜欢

热点阅读