zoukankan      html  css  js  c++  java
  • Swift学习笔记9--错误控制

    1.Swift 中有4种处理错误的方式。你可以把函数抛出的错误传递给调用此函数的代码、用do-catch语句处理错误、将错误作为可选类型处理、或者断言此错误根本不会发生。

    2.wift 中的错误处理并不涉及解除调用栈,这是一个计算代价高昂的过程。就此而言,throw语句的性能特性是可以和return语句相媲美的。

    3.一个标有throws关键字的函数被称作throwing 函数。如果这个函数指明了返回值类型,throws关键词需要写在箭头(->)的前面。只有 throwing 函数可以传递错误。任何在某个非 throwing 函数内部抛出的错误只能在函数内部处理。

    4.可以使用try?通过将错误转换成一个可选值来处理错误。如果在评估try?表达式时一个错误被抛出,那么表达式的值就是nil

    let x = try? someThrowingFunction()
    //等价于
    let y: Int?
    do {
        y = try someThrowingFunction()
    } catch {
        y = nil
    }

    5.可以在表达式前面写try!来禁用错误传递,这会把调用包装在一个断言不会有错误抛出的运行时断言中。如果实际上抛出了错误,你会得到一个运行时错误。

    6.可以使用defer语句在即将离开当前代码块时执行一系列语句。该语句让你能执行一些必要的清理工作,不管是以何种方式离开当前代码块的——无论是由于抛出错误而离开,还是由于诸如return或者break的语句。

    if exists(filename) {
            let file = open(filename)
            defer {
                close(file)
            }
           
            // close(file) 会在这里被调用,即作用域的最后。
        }

     

  • 相关阅读:
    HTML5进阶段内联标签汇总(小篇)
    Html5元素及基本语法
    HTML5中判断横屏竖屏
    用H5+Boostrap做简单的音乐播放器
    html5学习笔记(3)--主题结构元素-1
    css3制作旋转立方体相册
    css3的媒体查询(Media Queries)
    认识和理解css布局中的BFC
    getattr、setattr、hasattr
    Python-有名匿名函数、列表推导式
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/5153965.html
Copyright © 2011-2022 走看看