美文网首页
日更(四十五)-flutter-assert,try/catch

日更(四十五)-flutter-assert,try/catch

作者: Jlanglang | 来源:发表于2019-02-14 22:43 被阅读0次

    瞎扯

    只要翻过flutter的源码.就会发现.有很多的assert.
    到底是干嘛的,

    assert

    例如,BottomNavigationBar

     BottomNavigationBar({
        Key key,
        @required this.items,
        this.onTap,
        this.currentIndex = 0,
        BottomNavigationBarType type,
        this.fixedColor,
        this.iconSize = 24.0,
      }) : assert(items != null),
           assert(items.length >= 2),
           assert(
            items.every((BottomNavigationBarItem item) => item.title != null) == true,
            'Every item must have a non-null title',
           ),
           assert(0 <= currentIndex && currentIndex < items.length),
           assert(iconSize != null),
           type = type ?? (items.length <= 3 ? BottomNavigationBarType.fixed : BottomNavigationBarType.shifting),
           super(key: key);
    

    在构造方法后面,有一堆的assert.

    google一下.

    翻译过来,断言的意思.

    其作用大致就是.
    if的缩写.
    如果assert(false)条件为false.那么就会抛出异常

    并且,这个玩意只在debug模式下有效.这就更爽了.

    最后,assert除了传判断条件以外,还可以传一个提示字符串.

    也就是assert(x==1,'x==1了,报错')

    正如上面贴的BottomNavigationBar代码中的一段

    image.png

    try/catch

    在dart中,可以配合一个on属性.

    也就是.on用来判断类型,catch捕获

    try {
        ...
    } on OutOfLlamasException { // 一个具体的 Exception
          print('只匹配OutOfLlamasException');
    } on Exception catch (e) { // 所有的 Exception
      print('所有exception');
    } catch (e) { // 不指定错误类型,匹配所有
      print('匹配所有');
    }
    

    交流群:493180098,这是个很少吹水,交流学习的群.
    APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.

    相关文章

      网友评论

          本文标题:日更(四十五)-flutter-assert,try/catch

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