Flutter學習筆記(7)--Dart異常處理

如需轉載,請註明出處:Flutter學習筆記(7)--Dart異常處理

異常是表示發生了意外的錯誤,若是沒有捕獲異常,引起異常的隔離程序將被掛起,而且程序將被終止;html

Dart代碼能夠拋出並捕獲異常,但與java相反,Dart的全部異常都是未檢查的異常,方法不聲明它們可能拋出哪些異常,也不須要捕獲任何異常;java

Dart提供了異常和錯誤類型以及許多預約義的子類型,固然,也能夠定義本身的異常,然而,Dart成語能夠拋出任何非空對象;post

  • 拋出異常

下面是一個拋出或引起異常的例子:學習

throw FormatException('拋出一個FormatException異常');
//你也能夠拋出任意對象
throw '數據非法!';
  • 捕獲異常

你能夠指定一個或兩個參數來捕獲異常(catch),第一個是拋出的異常,第二個是堆棧跟蹤(StackTrace對象)。以下面代碼所示:url

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語句:spa

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面向對象code

相關文章
相關標籤/搜索