- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
掉入正确的错误处理程式中
Exceptions Lecturer:楊昌樺 Exception 例外(Exception) 一種不正常的情況,執行時期時由程式碼裡產生 換句話說,例外是一種執行時期的錯誤 在沒有支援例外處理的電腦語言裡,錯誤必須要檢查而且要手動的處理 通常是透過判斷錯誤程式碼的使用,可能需寫很多if敘述 處理方式很累贅而且很麻煩 Java的例外處理可以避免這些問題,而且在處理過程中,將執行時期的錯誤管理帶進物件式導向的世界裡 產生例外時視為產生一個Exception物件 處理Exception這種物件 5個關鍵字 try、catch、throw、throws與finally 監控例外的程式碼包含在 try 的區塊內 捕捉例外物件 (使用catch) 並且加以處理 要手動的丟出例外,使用關鍵字 throw 方法要丟出的例外在 throws 子句裡指定 一定要執行程式碼就放在 finally 的區塊裡 try, catch and finally try, catch and finally try 區塊 建立例外處理的第一個步驟 將可能發生例外的程式碼, 用 try 區塊包起來 statements 可以包括多個合法 Java 敘述,如: try, catch and finally catch 區塊 提供處理該 try 區塊的例外 catch 的參數:例外類別,該類別必須是繼承自 Throwable 的 subclass 回復錯誤、提醒使用者、結束程式執行 try, catch and finally finally 區塊 不管 try 區塊發生了什麼事情,一定會執行 finally 區塊內的敘述 適合用來:關閉尚未關閉的檔案,或是歸還系統資源,完成清除工作 writeList() 的 try 區塊會有三種狀況結束執行: new FileWriter 敘述執行失敗,丟出 IOException victor.elementAt(i) 執行失敗,丟出 ArrayIndexOutOfBounds Exception try 區塊正常結束 try, catch and finally ExceptionDemo2.java 多重 catch Exception 繼承樹 多重 catch throws method 將例外丟給 call stack 上層的 method 去處理 一個 method 利用 throws 將例外丟出 throw 在程式碼中丟出例外 您使用try catch收到例外事件後,如果只是想看一下,可以將該例外抽出後,再用 throw 指令丟出去。 throw 指令格式 throw 可丟出物件 其中的 “可丟出物件”,必須是 Throwable 的子類別 throw Example: ThrowDemo.java Throwable Class Java 將所有的例外 (Exception),通通定義成物件,且全部是 “Throwable” 物件的子孫 Throwable Class Your Own Exception Classes 如果您想自訂一個例外事件(Exception)的話,則您必須遵循下列三個步驟: 定義您的 Exception 正式名稱 畫出您的 Exception 的繼承樹 (如果有的話) 繼承 Throwable / Exception / RuntimeException 之一 Error 保留給系統,用來表示嚴重的錯誤 Your Own Exception Classes 假設: 自訂類別:Employees(); 自訂錯誤:薪水遞增函數每次不得超過公司規定之 5% Exception 名稱:OverSalaryRaiseException Your Own Exception Classes 由繼承樹來看,OverSalaryRaiseException 最好的祖先會是 Exception: Your Own Exception Classes 自訂例外事件通常包含兩個建構元: public 建構元名稱 () {} public 建構元名稱 (String s) { super(s);} 第二個建構元傳入之字串為錯誤訊息。即到時候用 getMessage() 傳回來的字串。 Your Own Exception Classes 負責丟出例外事件的函式,要遵守下列規則: 為了使呼叫函式能夠接到丟出去的例外事件,該函式必須宣告 “throws 例外事件名稱”,否則例外事件無法傳回上層。 丟出例外事件時,請在適當的地方呼叫 throw 指令。呼叫 throw 指令之處,程式會馬上停止,不再執行。 必須加上 new 的動作產生一新的 Object xxxException。 Your Own
文档评论(0)