J07_異常處理.ppt_第1頁
J07_異常處理.ppt_第2頁
J07_異常處理.ppt_第3頁
J07_異常處理.ppt_第4頁
J07_異常處理.ppt_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、異常處理,霍秋艷,第12章,Java的基本理念是“不能執(zhí)行結(jié)構(gòu)差的查詢密碼”,iftheresagoldenruleofprogrammingerrorsoccurinsoftwareprograms .沒有異常處理。 determine智能運輸系統(tǒng)大?。?分配匹配存儲器; 關(guān)閉文件; 以往方式,開放文件; 開放文件(if )細分。電子文件。 if (gotthefilelength )分配分配體存儲器; gotenoughmemory (門戶內(nèi)存)讀取文件內(nèi)存。 讀失敗錯誤代碼=-1; 錯誤代碼=-2; 錯誤代碼=-3; 錯誤代碼=-4; 錯誤代碼=-5; 如果觀察缺陷、上一個普通堆計程儀,

2、就會發(fā)現(xiàn)錯誤處理花費了很多精力。 如果只考慮可能的錯誤,那么在其他情況下,如果不能處理堆計程儀程序的可讀性差的錯誤,那么信息量少的方式如何呢? 讀文件; 打開文件夾; determine智能運輸系統(tǒng)大??; 分配匹配存儲器; 關(guān)閉文件; 開放故障(catch ) do something; catch (sizedeterminefailed ) do something; catch (內(nèi)存分配失敗) do something; 讀失敗(do something ); 文件關(guān)閉故障(catch ) do something。 如果捕捉到重要的內(nèi)容、異常,怎么處理? 異常發(fā)生的方式和時間節(jié)點運行

3、時異常.自定義異常類型為try、catch、throw、throws和finally牛鼻子字、什么是異常? 的雙曲馀弦值。 如果Java方法由于某種原因失敗,則拋出異常,該異常是成功執(zhí)行了計程儀程序執(zhí)行期間發(fā)生的中斷指令流的上通告。 的雙曲馀弦值。 控制權(quán)立即轉(zhuǎn)移到適當?shù)漠惓L幚沓绦?,調(diào)用棧內(nèi)存。 調(diào)用棧內(nèi)存,詢問法適當?shù)奶幚砥?,詢問法適當?shù)奶幚砥?,拋出異常,回避異常,捕獲異常,異常類型,異常是對象異常的類型是類異常類的分層結(jié)構(gòu)。 所有異常類型都有一個在基類中定義的方法,稱為類Exception的派生類。 異常/錯誤類型、異常(可由程序計程儀處理) : I/O錯誤(keyboard/flopp

4、y/disk/LAN )篡改、對象反向引用(null )、數(shù)學校正數(shù)組/集合越境錯誤(可由程序計程儀合理處理) :修正機內(nèi)存溢出Java Virtual Machine bug /錯誤/崩潰計程儀程序所需的Java類的損壞, 反常的繼承層次Java.lang.throwableerrorthreaddeathoutofmemorrorvirtualmachineerrorexceptionawtexceptionioexceptionfilenotfoundexceeeeen etexceptionruntimeexceptionarithmeticexceptionclasscastexce

5、ptionillegalargumentexceptionindexoutofboundseeption erexceptionuns 如果調(diào)用拋出異常的方法,則為try/mightthrowi/oexceptionb=streen b=stream2. read (); b=流3 .讀(); catch (ioexceptione )/handletheexception,將方法放入try子搖滾樂中,定義catch子搖滾樂以處理異常,Throwable類,Java通過系統(tǒng)類庫、Throwable、 RuntimeException、計算機內(nèi)存溢出流Java虛擬機bug /錯誤/崩潰計程儀程序

6、所需的Java類損壞、I/O錯誤篡改、對象反向引用一些異常方法,從throwable繼承的方法print stack trace () fillinstacktrack () getmessage () get方法調(diào)用者是publicobjectget(intindex)/通過捕獲checkargumentforvalidityif (index0) thrownewindexoutts,可以從項目群中的任何位置拋出(由程序設(shè)計師判斷); 返回我的安全指數(shù); 異常處理的好方法是打印錯誤信息(S.O.println ),彈出錯誤窗口(GUI堆計程儀程序),讓用戶(keyboard錯誤)再一次(I

7、/O問題) FIX/correct自己解決錯誤打印throw:拋出新異常,解決問題,然后打印,打印任務(wù)跟蹤()向stderr 3360 system.err.println (error : invalid thingy )發(fā)送錯誤信息錯誤信息計程儀文件計程儀服務(wù)(syslog ), throw,異常處理程序(catch子搖滾樂)從throw拋出異常可以更改異常的類型和錯誤信息,更改棧內(nèi)存軌跡的根fillInStackTrace (),例如3360throwup。異常處理程序(catch子搖滾樂)的t 如果未捕獲異常,也會發(fā)生這種情況。您可能需要執(zhí)行拋出該異常的操作。 可以將選定的異常類型傳播

8、到調(diào)用該方法的void blah() throws IOException。 在方法blah ()中,在捕獲這些個異常、解決問題、解決問題之后,無需自動執(zhí)行c,Sample code: Wait.java,何時如何生成異常?超3360超新規(guī)范(broken! ); 在任何地方都可以使用。 發(fā)現(xiàn)了幾個錯誤。 如果無法執(zhí)行后續(xù)查詢密碼,則可以將“throw”視為“return”、“Exception Enforcement”。 通常,如果指定每個方法可以生成的異常描述性查詢密碼,則所有調(diào)用方法生成的異常編譯程序(通常)都會強制不捕獲該調(diào)用方法的異常類型。 如果系統(tǒng)引起的異常(通常是由于程序設(shè)計師錯

9、誤) nullpointerexception (null references ) arrayindexoutofboundsexception不捕獲這些個異常,則編譯程序不會強制捕獲這些個異常。 創(chuàng)建samplecode:nullpointer.java、no checks、ifxisnullruntimeexceptiondefaultbehavior和weexplicitlychecks自定義異常類,然后單擊選擇意義相近的異常類繼承并創(chuàng)建新的異常類型的最簡單方法是通過讓編譯程序創(chuàng)建默認奧爾特的構(gòu)造器,來指示在高速計程儀計劃期間可能發(fā)生的特定問題是從現(xiàn)有的異常類中繼承的、自定義異常類型、

10、創(chuàng)建自定義異常、classfooexceptionextendsexceptionclassblahexceptionextendsexceptionblahexception () blah exception (sslahexception 使用finally進行修訂.catch (exception type1ename1) errorhandlingstatements. catch (exception type2e name2), 什么時候使用完整的異??刂聘袷絝inally :需要finally來定徑套定某事物,即使在當前的catch子句中沒有捕獲到異常,finally也會調(diào)用在

11、異??刂茩C構(gòu)遷移到更上位的異??刂破髦氨仨殘?zhí)行的break和continue語句Finally的缺點是有可能恢復丟失的例外。 samplecode:finallyplay.java,如果捕獲多個異常并且有多個catch語句,則捕獲異常對象的順序與catch語句的位置有關(guān),并且檢查case語句,就像檢查switch語句的順序一樣由于表示每個異常的類之間存在繼承關(guān)系,因此,在確定catch語句的順序時,首先捕獲最特殊的異常,然后逐漸喀嚦聲捕獲約定俗成,即捕獲子類異常的catch語句。 finally子句為異常處理提供了統(tǒng)一的出口,無論try語句中是否出現(xiàn)異常,都會執(zhí)行finally子句。如果tr

12、y子句中的語句出現(xiàn)異常,將無法執(zhí)行后續(xù)語句,并且在預計程儀編程時將此部分的查詢密碼插入finally子句的語句子搖滾樂中云同步必須包含用于釋放在try語句子搖滾樂中檢索到的資源的查詢密碼,以確保計程儀程序成功執(zhí)行或成功結(jié)束。 finally子句應該關(guān)閉在try子句中打開的所有文件,當然,即使在差動奧爾特的finally子句中,也存在不正確的異常處理,即try子搖滾樂太小而try子搖滾樂一般異常(catch Exception )無效的catch子搖滾樂(e.g.) 不容易檢查的異常到處發(fā)生3360 I/o networking/internetremotecodeinvocationrefle

13、ction,Exception restrictions,如果復蓋一個方法,則為方法方法定義可以指示自己拋出異常,但實際的方法不拋出異常接口中的方法不能更改基類中相同方法的異常接口子類方法遵循基類方法的異常規(guī)范也就是說,只能拋出與基類相同方法指定的異常。對異常的限制不適用于構(gòu)造器。 子類構(gòu)造器可以“丟棄”所需的異常,但在操作子類對象時,它必須以自己的異常規(guī)范聲明所有基類構(gòu)造器異常,并會捕獲特定于該類的異常。 如果要遷移到基類,則必須捕獲與該基類相關(guān)聯(lián)的所有異常,特別是在創(chuàng)建Constructors、構(gòu)造器時,適當釋放資源,因為當在構(gòu)造器內(nèi)拋出異常時,可能會發(fā)生相應的清除行為異常使用指南在以下情況下需要使用異常以適當?shù)募墑e處理問題(僅在知道如何處理時捕捉異常)。 解決問題,然后重新調(diào)用出現(xiàn)異常的方法。 進行一點修補,繞過發(fā)生異常的地方繼續(xù)執(zhí)行。 方法返回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論