iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Software Development

初學軟體開發系列 第 10

Day10-dart語言(錯誤處理)

  • 分享至 

  • xImage
  •  

今日學習內容
錯誤類型
錯誤操作
捕獲錯誤
自訂義異常

說明
當執行程式碼錯誤的時候,要如何看懂哪裡錯誤,以及編輯器編譯失敗時顯示的結果,該如何解決。

錯誤有兩種類型,一種是Exception類,另一種是Error類。
Exception類
可以安全處理的錯誤,像是格式錯誤、超時錯誤等這些都可以攔截處理的。
Error類
指系統內發生錯誤,無法恢復,導致崩潰的情形。

再來是操作錯誤,使用throw拋出。

void main(List <String> args){
  throw FormatException("這是一個格式錯誤");
}

常見的捕獲錯誤是使用try catch。

void main(List <String> args){

  try{
  throw OutOfMemoryError();
  }
  catch(e){
    print(e);
  }
  finally{
    print("happy");
  }
  
}

這裡示範內存溢出的Error,我們會捕獲(catch)錯誤訊息Out of Memory然後print出來,finally是指無論如何最後都要執行的結果,就是print出happy的文字。

最後是自訂義錯誤
我們必須自己寫出一個錯誤,然後在main呼叫。
以下範例:
這裡是以DioError自訂一個錯誤。

class DioError implements Exception{
DioError(this.message,this.type);

final String message;
final String type;

@override
String toString(){
    return 'DioError{'message','type'};
}
}

main裡面拋出DioError並呼叫它。

void main(List <String> args){
  throw DioError('error1', 'type1');

}

錯誤訊息:DioError (DioError{message:error1,type:type1})

學習總結
今天學錯誤處理這塊是因為當我們在寫程式時,或多或少都會有出錯的時候,但是有些是程式可執行,但是是電腦系統本身的問題,有可能是記憶體不夠裝之類的問題,通常在Debug時也不太會發現,所以學習這個也是要讓自己發現它並知道是什麼意思,才不會程式app建構完成後,才發現系統有問題。


上一篇
Day09-Dart語言(集合類)
下一篇
Day11-開發Flutter前的了解
系列文
初學軟體開發31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言