zoukankan      html  css  js  c++  java
  • Flutter学习笔记(7)--Dart异常处理

    如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理

    异常是表示发生了意外的错误,如果没有捕获异常,引发异常的隔离程序将被挂起,并且程序将被终止;

    Dart代码可以抛出并捕获异常,但与java相反,Dart的所有异常都是未检查的异常,方法不声明它们可能抛出哪些异常,也不需要捕获任何异常;

    Dart提供了异常和错误类型以及许多预定义的子类型,当然,也可以定义自己的异常,然而,Dart成语可以抛出任何非空对象;

    • 抛出异常

    下面是一个抛出或引发异常的例子:

    throw FormatException('抛出一个FormatException异常');
    //你也可以抛出任意对象
    throw '数据非法!';
    • 捕获异常

    你可以指定一个或两个参数来捕获异常(catch),第一个是抛出的异常,第二个是堆栈跟踪(StackTrace对象)。如下面代码所示:

    try{
        //逻辑代码操作
        } on Exception catch (e){
            print('exception details:
     $e');
        }catch (e,s){
            print('exception details:
     $e');
            print('stack trace:
     $s');
        }
    
    //上面的代码第一个catch用来捕获异常详细信息,第二个catch是堆栈跟踪信息
    • Finally

    要确保某些代码能够运行,无论是否抛出异常,请使用finally子句,如果没有catch子句匹配异常,则异常在finally子句运行后传播,如下面代码所示,在最下面加上了finally语句:

    try{
        //逻辑代码操作
        } on Exception catch (e){
            print('exception details:
     $e');
        }catch (e,s){
            print('exception details:
     $e');
            print('stack trace:
     $s');
        }finally{
            print(''Do sth);
        }

    下一章节:Flutter学习笔记(8)--Dart面向对象

  • 相关阅读:
    ubuntu16.04安装破解pycharm
    python解压,压缩,以及存数据库的相关操作
    cocoapods Error
    swift项目导入OC框架
    实现全屏滑动返回效果
    Storyboard & XIB 自己的理解
    View & Controller 一些方法的执行顺序
    Touch ID 实现
    Apple Pay 初探
    ReactiveCocoa学习
  • 原文地址:https://www.cnblogs.com/upwgh/p/11191752.html
Copyright © 2011-2022 走看看