Submit Search
Upload
7. 錯誤處理
•
Download as PPTX, PDF
•
1 like
•
308 views
Justin Lin
Follow
認識throw使用時機 使用try-catch處理錯誤 處理Promise錯誤 結合await、await與try-catch
Read less
Read more
Technology
Report
Share
Report
Share
1 of 52
Download now
Recommended
使用try、catch處理例外 認識例外繼承架構 認識throw、throws使用時機 運用finally關閉資源 使用自動關閉資源語法 認識AutoCloseable介面
CH08:例外處理
CH08:例外處理
Justin Lin
使用 try、except 處理例外 認識例外繼承架構 認識 raise 使用時機 運用 finally 清除資源 使用 with as 管理資源
例外處理
例外處理
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
CH11:執行緒與並行API
CH11:執行緒與並行API
Justin Lin
《Python 3.5 技術手冊》第 7 章投影片
例外處理
例外處理
Justin Lin
使用 try、except 處理例外 認識例外繼承架構 認識 raise 使用時機 運用 finally 清除資源 使用 with as 管理資源
7. 例外處理
7. 例外處理
Justin Lin
認識基本流程語法 使用 for Comprehension 認識函式與變數範圍 運用一級函式特性 使用 yield 建立產生器 初探型態提示
4. 流程語法與函式
4. 流程語法與函式
Justin Lin
《Python 3.5 技術手冊》第 4 章投影片
流程語法與函式
流程語法與函式
Justin Lin
使用try、catch處理例外 認識例外繼承架構 認識throw、throws的使用時機 運用finally關閉資源 使用自動關閉資源語法 認識AutoCloseable介面
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
Recommended
使用try、catch處理例外 認識例外繼承架構 認識throw、throws使用時機 運用finally關閉資源 使用自動關閉資源語法 認識AutoCloseable介面
CH08:例外處理
CH08:例外處理
Justin Lin
使用 try、except 處理例外 認識例外繼承架構 認識 raise 使用時機 運用 finally 清除資源 使用 with as 管理資源
例外處理
例外處理
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
CH11:執行緒與並行API
CH11:執行緒與並行API
Justin Lin
《Python 3.5 技術手冊》第 7 章投影片
例外處理
例外處理
Justin Lin
使用 try、except 處理例外 認識例外繼承架構 認識 raise 使用時機 運用 finally 清除資源 使用 with as 管理資源
7. 例外處理
7. 例外處理
Justin Lin
認識基本流程語法 使用 for Comprehension 認識函式與變數範圍 運用一級函式特性 使用 yield 建立產生器 初探型態提示
4. 流程語法與函式
4. 流程語法與函式
Justin Lin
《Python 3.5 技術手冊》第 4 章投影片
流程語法與函式
流程語法與函式
Justin Lin
使用try、catch處理例外 認識例外繼承架構 認識throw、throws的使用時機 運用finally關閉資源 使用自動關閉資源語法 認識AutoCloseable介面
Java SE 8 技術手冊第 8 章 - 例外處理
Java SE 8 技術手冊第 8 章 - 例外處理
Justin Lin
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Justin Lin
About Java Exception
11, exceptions
11, exceptions
ted-xu
《Python 3.5 技術手冊》第 13 章投影片
並行與平行
並行與平行
Justin Lin
瞭解串流與輸入輸出 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器
CH10:輸入輸出
CH10:輸入輸出
Justin Lin
認識基本流程語法 使用 for Comprehension 認識函式與變數範圍 運用一級函式特性 使用 yield 建立產生器 初探型態提示
流程語法與函式
流程語法與函式
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
探索物件特性 判斷物件型態 認識Reflect API 結合Proxy與Reflect API
9. meta-programming
9. meta-programming
Justin Lin
這個投影片是搭配《Java Tutorial》課程,你可以在 CodeData 上看到所有內容,也可以直接在 Google Play 或 Pubu 上搜尋 "Java Tutorial" 以購得電子書。
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器類別
輸入輸出
輸入輸出
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
執行緒與並行API
執行緒與並行API
Justin Lin
區別同步與非同步 運用Promise API 善用async、await 認識for-await-of 使用非同步產生器函式
6. 非同步設計
6. 非同步設計
Justin Lin
About java object initialization and cleanup
5, initialization & cleanup
5, initialization & cleanup
ted-xu
使用 REPL 設定原始碼檔案編碼 基本模組與套件管理 認識 IDE 的使用
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
RSpec & TDD Tutorial
RSpec & TDD Tutorial
RSpec & TDD Tutorial
Wen-Tien Chang
認識NIO 使用Channel與Buffer 使用NIO2檔案系統
CH14:NIO 與 NIO2
CH14:NIO 與 NIO2
Justin Lin
瞭解與設定PATH 瞭解與指定CLASSPATH 瞭解與指定SOURCEPATH 使用package與import管理類別 初步認識JDK與IDE的對應
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
認識並行、平行與非同步 使用 threading 模組 使用 multiprocessing 模組 使用 concurrent.futures模組 運用 async、await 與 asyncio
並行、平行與非同步
並行、平行與非同步
Justin Lin
Brief introduction of Nashorn on JDK 8. Delivered at ADC 2013 (http://adc.alibabatech.org/), on July 14, 2013. Full version of slides coming soon.
Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
Kris Mok
第0次JVM源码阅读活动 分享目标 * 让VM相关基础知识尚浅的人找到阅读HotSpot VM源码之外的学习JVM的路径 * 让并不真的对VM内部实现细节感兴趣的人不必在源码上耗费精力 * 为后续活动做准备 * 确定活动周期、形式、目标受众 * 吸引同好报名分享阅读VM源码的经验
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
Kris Mok
認識 Spring Boot 認識 Spring Tool Suite 遷移微網誌至 Spring Boot
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
區別程式庫與框架 逐步善用 Spring MVC 簡介 Thymeleaf 模版 使用 Spring Security
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
More Related Content
What's hot
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Justin Lin
About Java Exception
11, exceptions
11, exceptions
ted-xu
《Python 3.5 技術手冊》第 13 章投影片
並行與平行
並行與平行
Justin Lin
瞭解串流與輸入輸出 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器
CH10:輸入輸出
CH10:輸入輸出
Justin Lin
認識基本流程語法 使用 for Comprehension 認識函式與變數範圍 運用一級函式特性 使用 yield 建立產生器 初探型態提示
流程語法與函式
流程語法與函式
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
探索物件特性 判斷物件型態 認識Reflect API 結合Proxy與Reflect API
9. meta-programming
9. meta-programming
Justin Lin
這個投影片是搭配《Java Tutorial》課程,你可以在 CodeData 上看到所有內容,也可以直接在 Google Play 或 Pubu 上搜尋 "Java Tutorial" 以購得電子書。
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
瞭解串流與輸入輸出的關係 認識InputStream、OutputStream繼承架構 認識Reader、Writer繼承架構 使用輸入輸出裝飾器類別
輸入輸出
輸入輸出
Justin Lin
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
執行緒與並行API
執行緒與並行API
Justin Lin
區別同步與非同步 運用Promise API 善用async、await 認識for-await-of 使用非同步產生器函式
6. 非同步設計
6. 非同步設計
Justin Lin
About java object initialization and cleanup
5, initialization & cleanup
5, initialization & cleanup
ted-xu
使用 REPL 設定原始碼檔案編碼 基本模組與套件管理 認識 IDE 的使用
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
RSpec & TDD Tutorial
RSpec & TDD Tutorial
RSpec & TDD Tutorial
Wen-Tien Chang
認識NIO 使用Channel與Buffer 使用NIO2檔案系統
CH14:NIO 與 NIO2
CH14:NIO 與 NIO2
Justin Lin
瞭解與設定PATH 瞭解與指定CLASSPATH 瞭解與指定SOURCEPATH 使用package與import管理類別 初步認識JDK與IDE的對應
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
認識並行、平行與非同步 使用 threading 模組 使用 multiprocessing 模組 使用 concurrent.futures模組 運用 async、await 與 asyncio
並行、平行與非同步
並行、平行與非同步
Justin Lin
Brief introduction of Nashorn on JDK 8. Delivered at ADC 2013 (http://adc.alibabatech.org/), on July 14, 2013. Full version of slides coming soon.
Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
Kris Mok
第0次JVM源码阅读活动 分享目标 * 让VM相关基础知识尚浅的人找到阅读HotSpot VM源码之外的学习JVM的路径 * 让并不真的对VM内部实现细节感兴趣的人不必在源码上耗费精力 * 为后续活动做准备 * 确定活动周期、形式、目标受众 * 吸引同好报名分享阅读VM源码的经验
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
Kris Mok
What's hot
(20)
Java SE 7 技術手冊投影片第 08 章 - 例外處理
Java SE 7 技術手冊投影片第 08 章 - 例外處理
11, exceptions
11, exceptions
並行與平行
並行與平行
CH10:輸入輸出
CH10:輸入輸出
流程語法與函式
流程語法與函式
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
9. meta-programming
9. meta-programming
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
輸入輸出
輸入輸出
執行緒與並行API
執行緒與並行API
6. 非同步設計
6. 非同步設計
5, initialization & cleanup
5, initialization & cleanup
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
RSpec & TDD Tutorial
RSpec & TDD Tutorial
CH14:NIO 與 NIO2
CH14:NIO 與 NIO2
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
並行、平行與非同步
並行、平行與非同步
Nashorn on JDK 8 (ADC2013)
Nashorn on JDK 8 (ADC2013)
为啥别读HotSpot VM的源码(2012-03-03)
为啥别读HotSpot VM的源码(2012-03-03)
More from Justin Lin
認識 Spring Boot 認識 Spring Tool Suite 遷移微網誌至 Spring Boot
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
區別程式庫與框架 逐步善用 Spring MVC 簡介 Thymeleaf 模版 使用 Spring Security
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
使用 Gradle 結合 Gradle 與 IDE 認識相依注入 使用 Spring 核心
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
寄送純文字郵件 寄送 HTML 郵件 寄送附檔郵件
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
了解 Java EE 安全概念與名詞 使用容器基本驗證與表單驗 使用 HTTPS 保密資料傳輸
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
了解 JDBC 架構 使用基本的 JDBC 透過 JNDI 取得DataSource 在 Web 應用程式整合資料庫
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
使用 Tag File 自訂標籤 使用 Simple Tag 自訂標籤 使用 Tag 自訂標籤
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
了解何謂 JSTL 使用 JSTL 核心標籤庫 使用 JSTL 格式標籤庫 使用 JSTL XML 標籤庫 使用 JSTL 函式標籤庫
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
了解 JSP 生命週期 使用 JSP 語法元素 使用 JSP 標準標籤 使用運算式語言(EL) 自訂 EL 函式
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
了解 Servlet 生命週期 使用 ServletConfig 與ServletContext 使用 PushBuilder 各種傾聽器的使用 繼承 HttpFilter 實作過濾器
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
了解會話管理基本原理 使用 Cookie 類別 使用 HttpSession 會話管理 了解容器會話管理原理
Ch04 會話管理
Ch04 會話管理
Justin Lin
取得請求參數與標頭 處理中文字元請求與回應 設定與取得請求範圍屬性 使用轉發、包含、重新導向
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
開發環境準備與使用 了解 Web 應用程式架構 Servlet 撰寫與部署設定 了解 URI 模式對應 使用 web-fragement.xml
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
認識 HTTP 基本特性 了解何為 URI 編碼 認識 Web 容器角色 了解 Servlet 與 JSP 的關係 認識 MVC/Model 2
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
14. 進階主題
14. 進階主題
Justin Lin
認識並行、平行與非同步 使用 threading 模組 使用 multiprocessing 模組 使用 concurrent.futures模組 運用 async、await 與 asyncio
13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin
使用 pdb 模組除錯 對程式進行單元測試 使用 timeit 評測程式片段 使用 cProfile(profile)察看評測數據
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
處理日期與時間 認識日誌的使用 運用規則表示式 管理檔案與目錄 URL 處理
11. 常用內建模組
11. 常用內建模組
Justin Lin
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
認識 hashable、iterable、orderable 對物件進行排序 認識群集架構 運用 collections 模組 運用 collections.abc 模組
9. 資料結構
9. 資料結構
Justin Lin
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Ch09 整合資料庫
Ch09 整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Ch07 使用 JSTL
Ch07 使用 JSTL
Ch06 使用 JSP
Ch06 使用 JSP
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch04 會話管理
Ch04 會話管理
Ch03 請求與回應
Ch03 請求與回應
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
14. 進階主題
14. 進階主題
13.並行、平行與非同步
13.並行、平行與非同步
12. 除錯、測試與效能
12. 除錯、測試與效能
11. 常用內建模組
11. 常用內建模組
10. 資料永續與交換
10. 資料永續與交換
9. 資料結構
9. 資料結構
7. 錯誤處理
1.
2.
7. 錯誤處理 • 學習目標 –
認識throw使用時機 – 使用try-catch處理 錯誤 – 處理Promise錯誤 – 結合await、await與 try-catch 2
3.
3
4.
4
5.
5
6.
6
7.
• 在設計函式或方法時,遇到無法繼續流程 的錯誤時,想令呼叫者有機會處理錯誤, 才是拋出錯誤的目的 7
8.
• 如果在函式中,程式碼流程先return了, finally區塊會先執行完後,再將值傳回 8
9.
掌握錯誤型態 • SyntaxError • ReferenceError •
TypeError • RangeError • URIError 9
10.
SyntaxError • 剖析程式碼語法時期 • eval()、JSON.parse()剖析失敗 10
11.
• 試圖使用未宣告的名稱 11 ReferenceError
12.
TypeError • 試圖操作物件上不存在的行為 12
13.
RangeError、URIError • 在呼叫某些API時,指定的引數有誤時會拋 出的錯誤 – Number.toExponential()、 Number.toFixed()或 Number.toPrecision()若引數有誤會拋出 RangeError –
encodeURI()或decodeURI()有誤會拋出 URIError。 13
14.
• try-catch並不支援多個catch區塊 14
15.
• ES10以後catch可以不寫括號部份 15
16.
自訂錯誤型態 • JavaScript最初是為瀏覽器而生,可用資源 相對有限,錯誤的類型也就相對地少 • ECMAScript多數規範是集中在語言本身, 標準錯誤型態多半也是跟語言本身相關 •
不同環境或其他技術標準的錯誤類型,是 由各個環境自行實作,或是其他技術標準 來規範 16
17.
• 對於應用程式或程式庫開發,建議針對需 求,發展自己的一套錯誤型態,令錯誤處 理能突顯應用程式或程式庫的意圖 17
18.
18
19.
19
20.
20
21.
• 程式邏輯錯誤,也就是程式寫錯了,若發 現了這類錯誤,應該停止程式執行並修正 程式碼,而不是捕捉錯誤時粉飾太平 • 視需求而定,若捕捉錯誤後,當時情境沒 有足夠的資訊可以妥善處理,可就現有資 訊處理完錯誤後,重新拋出原錯誤,或者 是收集資訊後建立新的錯誤拋出 21
22.
堆疊追蹤(Stack Trace) 22
23.
23
24.
• 要善用堆疊追蹤,前題是程式碼中不可有 私吞錯誤的行為 • 這樣的程式碼會對應用程式維護造成嚴重 傷害 24
25.
• 在使用throw再度拋出同一錯誤實例時, 錯誤的追蹤堆疊起點,仍是錯誤的發生根 源,而不是重拋錯誤的地方 25
26.
26
27.
• 如果捕捉錯誤後,拋出了新的錯誤實例, 堆疊追蹤就會中斷 27
28.
28
29.
產生器與錯誤處理 • throw()方法可以指定Error實例,在產 生器函式中拋出例外 • 在拋出例外之後,呼叫產生器的next()方 法不會再有進一步結果 29
30.
30
31.
• 如果產生器函式定義流程時,包含了try- catch語法,而且流程已進入try區塊,呼 叫throw()時指定的Error實例,就可以 被捕捉 31
32.
• 流程必須已進入try區塊,錯誤才會被捕捉 • 上面的範例如果沒呼叫過g.next(),就直 接g.throw()的話,主控台會顯示以下的 訊息 32
33.
• 在實作Symbol.iterator時,選擇性地 實作return()與throw()方法 33
34.
34
35.
回呼模式錯誤處理 • 在呼叫了非同步函式之後,流程就會離開 了try區塊 • 若非同步的任務執行過程中發生錯誤,已 不是呼叫非同步函式時對應的catch區塊 可處理 35
36.
36
37.
• 如果實作非同步任務時採取回呼模式,想 在任務無法執行時處理錯誤,是將Error 實例當成引數傳入回呼函式 37
38.
38
39.
39
40.
• 若錯誤真的發生,而程式碼中沒有檢查, 那麼錯誤就會靜悄悄地被忽略了 • 這就好比寫了catch區塊卻內容空白一樣, 對查找臭蟲時是很大的麻煩 •
為了避免被忽略,通常錯誤實例會作為回 呼函式的第一個引數,算是對開發者的基 本提醒:「別忘了檢查錯誤」 40
41.
Promise與錯誤處理 • Promise被否決時,表示任務因為某個錯 誤而無法執行下去 • 使用reject否決任務,可以對比為同步流 程時throw錯誤的概念 41
42.
• 如果Promise在執行任務時拋出了錯誤, 會隱含地以指定的錯誤物件作為reject的 引數來否決任務 • 在不同的環境中會有不同的呈現方式 –
Node.js: UnhandledPromiseRejectionWarning – 瀏覽器:Uncaught (in promise) 42
43.
• 如果then()指定的回呼函式中拋出了錯誤, 就是否決then()傳回的Promise 43
44.
• 如果錯誤沒在then()中處理掉,then() 傳回的Promise也會被否決 • 在形成鏈狀呼叫時,就會類似throw錯誤 時中斷流程的概念 44
45.
• then()或catch()是各自獨立的 • 也就是各自傳回Promise,如果then()或 catch()沒有拋出錯誤,傳回的Promise 任務就算達成 45
46.
46
47.
• 對於catch()應該理解為,只要沒有再度 拋出錯誤,捕捉錯誤的任務就達成了 • ES9提供了finally()方法,這就可以形 成類似try-catch-finally的風格 47
48.
async、await與錯誤處理 • 在async函式throw錯誤,表示任務無法 達成,相當於呼叫Promise的reject時指 定了錯誤物件 48
49.
• 在使用await的情況下,結合try-catch 錯誤處理語法上就成了可能 49
50.
非同步產生器與錯誤處理 • 非同步產生器具有throw()方法,呼叫時 傳入錯誤物件,可以在非同步產生器函式 定義的流程中拋出錯誤 • 如果非同步產生器函式中定義了try- catch,而且流程已經在try區塊中,那麼 錯誤就可以被catch捕捉處理 50
51.
51
52.
• 如果非同步產生器函式中沒有處理錯誤的 話,由於本質上也是個async函式,拋出 錯誤相當於否決任務,必須在throw()方 法傳回的Promise中進行處理 52
Download now