天天看點

Dart基礎-控制流程與異常處理

你可以通過以下方法控制代碼流程

if和else

for循環

while和do-while循環

break和continue

switch和case

assert

你也可以使用try-catch和throw處理異常

dart支援if語句和可選的else語句,簡單的if語句可以用條件運算符( ? : ),下面是例子

你可以使用for循環進行疊代

如果對象是一個iteration對象,你可以使用foreach()方法

iteration類list和set使用for-in的形式

while循環先判斷條件再進入循環

do-while先進入循環再判斷條件

使用break停止循環

使用continue跳過本次循環

switch通常用于整數、字元串和編譯時常量的比較,比較的對象必須是同一類的執行個體,而不是任何子類型,每一個case必須用break結束。

在沒有case比對的情況下執行default的内容

下面例子中的case省略了break,是以産生了一個錯誤

然而,在case内容為空的情況下支援落空

如果你真的希望落空,你可以使用continue繼續執行

使用assert語句,如果布爾值為false就擾亂正常運作,隻在檢查模式下工作

dart會抛出并捕獲異常,異常表示一些意想不到的事情發生了,如果沒有捕獲異常,就會中斷運作或程式結束,與java不同,dart的所有異常都是未經檢查的,dart提供了exception和error類型,以及衆多預定義的子類型,你也可以自己定義異常

這是個抛出異常的例子

你還可以抛出任意對象

因為抛出異常是一個表達式,你可以用 => statements 在任何地方抛出異常

捕捉或捕獲異常阻止異常繼續運作,捕獲異常并處理

代碼可以有多個類型的異常處理,你可以指定多個異常處理,第一個catch子句處理異常對象的類型,如果catch子句沒有指定異常類型,就處理所有異常類型

看上面的代碼,你可以使用on和catch或兩者都用,使用on指定異常類型,使用catch給異常處理程式一個異常對象

確定代碼的運作,不管是否抛出異常,使用finally子句,無論是否有比對異常的catch子句,最終都執行finally子句

比對任何異常catch子句後運作finally子句