例外處理. 內 容 大 綱 例外的產生 捕捉例外 丟出例外 例外的產生 (1/4) 一般常見的執行時期錯誤包括整數除法分母為 0(divide by zero) ,陣列索引值越限 (array index out of range) ,輸入輸出錯誤 (I/O error) 、檔案 不存在或無法存取.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
建立使用案例敘述 --Use Case Narrative
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
What is static?. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1; this.instanceX =
1.1 線性方程式系統簡介 1.2 高斯消去法與高斯-喬登消去法 1.3 線性方程式系統的應用(-Skip-)
1 Web of Science 利用指引 單元二 瀏覽與處理查詢結果. 2 瀏覽檢索結果 查出的結果,預設以時間排列, 使用者可改變結果的排列方式: 還可以依被引用次數、相關度、 第一作者、刊名、出版年等排序 回到前先查的結果畫面 點選想看資料的完整書目 本館訂購範圍的期刊 全文,便可直接連結.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
JAVA 程式設計與資料結構 第二章 JAVA 程式基本概念及操作. 第一個程式 /* * 這是第一個程式 (FirstP.java) */ class FirstP{ public static void main(String args[]){ System.out.println("Whatever.
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
第 13 章 常數、靜態成員與朋友關 係 13-1 常數物件與成員 13-1 常數物件與成員 13-2 物件成員與巢狀類別 13-2 物件成員與巢狀類別 13-3 靜態成員資料與函數 13-3 靜態成員資料與函數 13-4 朋友關係 13-4 朋友關係.
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
程式註解說明. 2 程式註解格式 塊狀註解 對檔案、 class 、 method 、資料結構、一段程式 …. 等程式區塊 做說明。 第一行的開頭必需為 “/*” 且沒有其他文字,最後一行的開頭 必需以 “*/” 做為結束,在中間每一行的開頭都必需是一個 “*” 。 單行註解 佔據一整行的說明。 以.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
2009fallStat_samplec.i.1 Chap10 Sampling distribution (review) 樣本必須是隨機樣本 (random sample) ,才能代表母體 Sample mean 是一隨機變數,隨著每一次抽出來的 樣本值不同,它的值也不同,但會有規律性 為了要知道估計的精確性,必需要知道樣本平均數.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
長訊科技 EVRCOM Voice Mail System 使用者操作說明及流程. 自動總機 -- 來電語音轉接服務流程 ( 範例流程 )
第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5.
Introduction to Java Programming Lecture 5: Using Java Classes : String & Math Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
Introduction to Java Programming Lecture 15 Objects and Classes.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
第 5 章 深入 Response 物件 製作. 網頁的轉向與強制輸出 - 讓網頁轉彎的 Redirect 敘述 運用 Response 物件的 Redirect 方法,將瀏覽器顯 示的網頁,導向至其他網頁,語法如下: Response.Redirect 網頁路徑與名稱 此網頁路徑與名稱  若是導向到同一台.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出與繼續迴圈 6-5 跳出與繼續迴圈 6-6 錯誤處理 6-6 錯誤處理.
CH.8 偵錯 Visual Basic CH.8 偵錯 Visual Basic  資三甲   章乃云 三種類型的錯誤 三種類型的錯誤.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
第十章 再論結構. 指標與結構的關係 /* File name: ex10-1a.c */ #include int main() { struct student { char *name; int score; }; struct student st= {"Brian", 97}; struct.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
JAVA 程式設計與資料結構 第二十章 Searching. Sequential Searching Sequential Searching 是最簡單的一種搜尋法,此演 算法可應用在 Array 或是 Linked List 此等資料結構。 Sequential Searching 的 worst-case.
資料結構實習-二.
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
Chapter 10 m-way 搜尋樹與B-Tree
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
JAVA 程式設計與資料結構 第十六章 Hash Tables. Introduction Hash Tables 結構為一個 Array ,稱之為 Bucket array 。 如果想要新增一個物件,要根據這個物件的特性 將其加入 Hash Table 內。 Bucket Array 用 A 來代替,其.
Java2 程式實務 1 第八章 package 程式碼及函式庫管理 – 傳統的程式語言, C 及 PASCAL ,抑或是較新的 物件導向程式語言如 C++ 等: 程式語言本身並沒有任何的機制去管理程式碼及函式 庫等瑣碎繁雜的檔案。 –Java : 以類別為主的程式編譯方式, 以 package 來管理組織類別,使得系統發展能夠以一.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
INTRODUCTION TO MATLAB SHAWNNTOU. What Is MATLAB? MATLAB® is a high-performance language for technical computing. MATLAB® is a high-performance language.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
Visual C++重點複習.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
數字系統與資料表示法 教師: 陳炯勳 數系轉換 r進制數字 稱為 base r或 radix r 有r個計數符號,計數順序逢r歸零(進位) A n A n - 1 ‥‥A 2 A 1 A 0 ﹒A -1 A -2 ‥‥A -m 其中A n 及A.
Microsoft Excel.
Introduction to Java Programming Lecture 16 Super and Sub Classes.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
幼兒行為觀察與記錄 第八章 事件取樣法.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
第 1 章 PC 的基本構造. 本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

例外處理

內 容 大 綱 例外的產生 捕捉例外 丟出例外

例外的產生 (1/4) 一般常見的執行時期錯誤包括整數除法分母為 0(divide by zero) ,陣列索引值越限 (array index out of range) ,輸入輸出錯誤 (I/O error) 、檔案 不存在或無法存取 (noexistent or inaccessible file) 等。 Java 語言則提供一個處理執行時期錯誤的機制, 稱為例外處理 (exception handling) ,此機制讓使 用者可以「嘗試 (try) 」著去「捕捉 (catch) 」到執 行時期錯誤,並直接加以處理,以避免程式因為 執行時期的錯誤而立即停止。

例外的產生 (2/4) 程式執行時期的錯誤在 Java 語言中稱為例外 (exception) ,它們被視為物件,當程式於執行 時期產生錯誤時,一個對應的例外物件會被產 生出來,這在 Java 語言的術語裡稱為「有一個 例外被丟出 (throw) 了」。 當一個例外被丟出時若未能立即被捕捉 (catch) 並加以處理,則程式的執行會立即終止。 所有的例外相關類別都是由 java.lang 類別庫的 Throwable( 可丟出的 ) 類別衍生出來的。

例外的產生 (3/4) 由類別 Throwable 衍生出來的主要例外相關類別 繼承階層架構:

例外的產生 (4/4) 1: // 檔名 : 例外處理範例 1.java 2: // 說明 : 此程式可測試例外的產生情形// 說明 : 此程式可測試例外的產生情形 3: class 例外處理範例 1 { 4: public static void main (String[] 參數 ){ 5: int 整數 1=100, 整數 2=0, 整數 3; 6: System.out.println( 整數 1+ ” / ” + 整數 2); 7: 整數 3= 整數 1/ 整數 2; 8: System.out.println( ” = ” + 整數 3); 9: } // 方法 :main() 定義區塊結束 10: }// 類別 : 例外處理範例 1 程式執行結果 程式執行結果

捕捉例外 (1/6) 程式執行時期產生錯誤時,系統會根據錯誤的狀 況丟出一個對應的例外。 當一個例外被丟出時若未能立即被捕捉 (catch) 並 加以處理,則程式的執行會立即終止。 Java 語言中與例外捕捉與處理相關的關鍵字有 3 個: try 、 catch 與 finally 。

捕捉例外 (2/6) 例外捕捉與處理的一般形式如下所示: try{ 要監視例外產生的程式碼區塊 … } catch( 例外類別甲 例外 1){ 屬於例外類別甲的例外發生時執行的程式碼區塊 … } catch( 例外類別乙 例外 2){ 屬於例外類別乙的例外發生時執行的程式碼區塊 … } … finally{ 不論發生什麼例外或是例外根本沒有發生都要執行的程式碼區塊 … }

捕捉例外 (3/6) 上列例外捕捉與處理一般形式的用法如下: 將要監視例外產生的程式碼區塊置放於 try 關鍵字 之後的配對大刮號中,以便監控此程式碼區塊所 產生的任何例外。 將例外產生時要執行的程式碼置放於 catch 關鍵 字之後的配對大括號中,若所監視的程式碼區塊 發生的例外所屬的類別與 catch 關鍵字後小括號 中的類別相符,則配對大括號中的程式碼將會執 行。

捕捉例外 (4/6) 至於不論發生什麼例外或是例外根本沒有發生都 要執行的程式碼區塊則置放於 finally 後的配對大 括號中。 提示

捕捉例外 (5/6) 1: // 檔名 : 例外處理範例 2.java 2: // 說明 : 此程式可測試例外的產生情形// 說明 : 此程式可測試例外的產生情形 3: class 例外處理範例 2 { 4: public static void main(String[] 參數 ) { 5: int[] 陣列 ={0,1,2,3,4}; 6: int 編號 =(int)(Math.random()*10); 7: int 整數 1=(int)(Math.random()*100); 8: int 整數 2=(int)(Math.random()*2); 9: try { 10: System.out.println( 整數 1+"/"+ 整數 2); 11: int 整數 3= 整數 1/ 整數 2; 12: System.out.println("="+ 整數 3); 13: System.out.println( “ 陣列編號為 ” + 編號 + “ 的元素之值為 ");

捕捉例外 (6/6) 14: System.out.println( 陣列 [ 編號 ]); 15: } 16: catch (ArithmeticException 例外 ) { 17: System.out.println(" 算數例外產生 "+ 例外 ); 18: } 19: catch (ArrayIndexOutOfBoundsException 例外 ) 20: System.out.println(" 陣列索引越限例外產生 "+ 例外 ); 21: } 22: finally { 23: System.out.println( “ 不論產生什麼例外或是根本沒有例外產生皆 會列出此訊息 "); 24: } 說明 25: } // 方法 :main() 定義區塊結束 26: } // 類別 : 例外處理範例 2 定義區塊結束 程式執行結果 程式執行結果

丟出例外 (1/10) 在 Java 語言執行時,如果有一個執行時期錯誤發 生,則會有一個例外被丟出 (throw) 。 除了這種因為執行時期錯誤發生而由系統自動丟 出的例外之外,我們也可以透過程式碼,故意丟 出自己預設的例外。

丟出例外 (2/10) 我們使用 throw 關鍵字構成 throw 敘述來故意丟出一個例 外,當我們這麼做時,就必須另外於包含 throw 敘述的 方法的宣告部分使用 throws 關鍵字來表明方法執行時會 故意丟出什麼例外。 throw 及 throws 關鍵字的用法如下所示: 某方法 (……)throws 例外 1, 例外 2,……{ … throw new 例外 1(); throw new 例外 2(); … }

丟出例外 (3/10) 除了故意丟出的例外必須用 throws 關鍵字述明外, 有許多系統內建的例外也必須用 throws 關鍵字宣 告其發生之可能,唯有 RuntimeException 類別及 Error 類別的衍生例外類別不需要用 throws 關鍵字 宣告可能的丟出。 不需要於方法開始處宣告的例外,稱為不檢查 (unchecked) 例外,需要於方法開始處宣告的例 外,稱為檢查 (checked) 例外。 RuntimeException 類別及 Error 類別的衍生例外類 別都是不檢查例外。 Error 類別

丟出例外 (4/10) 表 11-1 是所有定義於 java.lang 類別庫中所有的例 外相關類別,請注意其中有一些是不檢查例外, 有些是檢查例外。

丟出例外 (5/10) 所有的例外類別都是 Throwable 的子類別, Throwable 類別的建構方法摘要如下所列: Throwable 類別建構方法摘要 Throwable() 建立一個 Throwable 例外物件,此例外物件沒有附加的說明訊息 Throwable(String 說明訊息 ) 建立一個 Throwable 例外物件,此例外物件的附加說明訊息為說明訊息

丟出例外 (6/10) Throwable 類別常用方法摘要 String getMessage() 傳回 Throwable 物件的附加說明訊息,若無附加說明訊息則傳回 null void printStackTrace() 追蹤執行堆疊並將其結果由標準的錯誤輸出設備印出 void printStackTrace(PrintStream 列印資料流設備 ) 追蹤執行堆疊並將其結果由指定的列印資料流設備印出

丟出例外 (7/10) 我們知道除了使用 throw new 某例外 (); 來丟出一個例外之外,我們也可以可使用 throw new 某例外 (” 此字串為例外的附加說明訊 息 ”); 來產生一個附帶說明訊息的例外物件某例外,例 外的說明訊息可以使用 getMessage 方法來取得 說明訊息。

丟出例外 (8/10) 1: // 檔名 : 例外處理範例 3.java 2: // 說明 : 此程式可測試例外的產生情形 3: class 例外處理範例 3 { 4: public static void main(String[] 參數 ) { 5: try { 6: 產生例外方法 (); 7: } // 敘述 :try 定義區塊結束 8: catch ( 自行定義例外 1 例外 ) { 9: System.out.println(" 例外產生 : "+ 例外 ); 10: } 11: catch ( 自行定義例外 2 例外 ) { 12: System.out.println(" 例外產生 : "+ 例外 ); 13: }

丟出例外 (9/10) 14: finally { 15: System.out.println(" 不論產生什麼例外或是根本沒有例外產生皆會列 出此訊息 "); 16: } 17: } // 方法 :main() 定義區塊結束 18: static void 產生例外方法 () throws 自行定義例外 1, 自行定義例外 2 { 19: int 整數 =(int)(1+Math.random()*2); // 整數 =1 或 2 的機率均等 20: System.out.println(" 整數之值為 "+ 整數 ); 21: if ( 整數 ==1) 22: throw new 自行定義例外 1(); 23: else 24: throw new 自行定義例外 2(" 這是自行定義例外 2 的說明訊息 "); 25: } // 建構方法 : 產生例外方法 () 定義區塊結束 26: } // 類別 : 例外處理範例 3 定義區塊結束

丟出例外 (10/10) 27: class 自行定義例外 1 extends Exception { } 28: class 自行定義例外 2 extends Exception { 29: 自行定義例外 2(String 說明訊息 ) { 30: super( 說明訊息 ); 31: } // 方法 : 32: } // 類別 : 自行定義例外 2 定義區塊結束 程式執行結果

Q&A

程式執行結果 ( 範例 11-1.)

程式執行結果 ( 範例 11-2.)

程式執行結果 ( 範例 11-3.)

程式說明 ( 範例 11-1.) 第 7 行中,因為變數 2 為 0 而且它是除式整數 1/ 整數 2 的分 母,整數除法算數運算中分母為 0 會引發一個 ArithmeticException 的例外,因為我們沒有「嘗試 (try) 」 加以「捕捉 (catch) 」這個例外,在執行第 7 行時程式的 執行中止,並出現以下訊息: java.lang.ArithematicException : /by zero at 例外處理範例 1.main( 例外處理範例 1.java:7) 這個訊息是說,當執行到類別例外處理範例 1 的 main 方 法時,因為碰到 ”/by zero” 的錯誤情形,因此系統丟出 一個屬於 java.lang 類別庫的 ArithematicException 例外, 而產生此錯誤情形的敘述位於例外處理範例 1.java 程式 檔案中的第 7 行。

程式說明 ( 範例 11-2.) 在範例程式 11-2 中我們嘗試著以第 行 catch (ArithmeticException 例外 ) {…} 捕捉整數除法分母為 0(divide by zero) 的算數運 算例外,並嘗試以  第 行 catch (ArrayIndexOutOfBoundsException 例外 ) {…} 捕捉陣列索引值越限 (array index out of range) 例外。

註解: Error 類別 Error 類別及其衍生類別所對應的錯誤狀況都是比 較嚴重的,應用程式通常無法處理 Error 類別及其 衍生類別所對應的錯誤狀況,因此,應用程式不 需要於方法開始處以 throws 敘述表示 Error 類別及 其衍生類別所對應錯誤狀況產生的可能性。一般 而言, Error 類別及其衍生類別被丟出後程式即停 止執行。

提 示 當有例外產生而此例外與許多 catch 敘述都符合時, 以第一個碰到的 catch 敘述來捕捉此例外。