例外是表示發生了意外的錯誤,如果沒有捕獲例外,引發例外的隔離程式將被掛起,并且程式將被終止;
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); }
Dart學習系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/134835.html
標籤:Dart
上一篇:python背單詞小程式
