Dart語言學習(十一) Dart異常處理

 

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

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

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

  • 拋出異常

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

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

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

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

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);
    }

Dart學習系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html
相關文章
相關標籤/搜索