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:\n $e');
    }catch (e,s){
        print('exception details:\n $e');
        print('stack trace:\n $s');
    }

//上面的代碼第一個catch用來捕獲異常詳細信息,第二個catch是堆棧跟蹤信息
  • Finally

要確保某些代碼能夠運行,無論是否拋出異常,請使用finally子句,如果沒有catch子句匹配異常,則異常在finally子句運行后傳播,如下面代碼所示,在最下面加上了finally語句:

try{
    //邏輯代碼操作
    } on Exception catch (e){
        print('exception details:\n $e');
    }catch (e,s){
        print('exception details:\n $e');
        print('stack trace:\n $s');
    }finally{
        print(''Do sth);
    }

 

下一章節:Flutter學習筆記(8)--Dart面向對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM