版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目6利用異常機(jī)制處理鬧鐘軟件的運(yùn)行錯(cuò)誤古凌嵐張嬋羅佳人民郵電出版社Java系統(tǒng)化項(xiàng)目開發(fā)教程知識(shí)要點(diǎn)異常和異常類異常處理機(jī)制自定義異常類日志管理類引子如果程序出錯(cuò)了,怎么辦?程序運(yùn)行出現(xiàn)不正常調(diào)試程序時(shí),會(huì)出現(xiàn)程序運(yùn)行過程中,突然中止,屏幕上出現(xiàn)一大堆英文......。ATM機(jī)輸入密碼出錯(cuò)時(shí),會(huì)提示用戶重新輸入密碼,三次后將吞卡以上情況對(duì)于程序而言,就是異常Java中提供了異常處理機(jī)制6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷問題分析如果鬧鐘工具軟件運(yùn)行時(shí),中斷出現(xiàn)以下信息需要分析信息內(nèi)容,判斷出錯(cuò)的位置及原因,并予以糾正程序出錯(cuò)兩種情況:編譯時(shí)出錯(cuò)和運(yùn)行時(shí)出錯(cuò),對(duì)應(yīng)地進(jìn)行語法糾錯(cuò),或是檢查程序邏輯處理過程存在的問題對(duì)于第二種情況,可應(yīng)用Java異常處理機(jī)制來應(yīng)對(duì)6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷異常指發(fā)生在正常情況以外的事情,如用戶輸入錯(cuò)誤、除數(shù)為零、需要的文件不存在、文件打不開、數(shù)組下標(biāo)越界、內(nèi)存不足等。程序在運(yùn)行過程中發(fā)生這樣或那樣的錯(cuò)誤是不可避免的。在設(shè)計(jì)程序時(shí),要充分考慮到各種意外情況,不僅要保證應(yīng)用程序的正確性,而且還應(yīng)該具有較強(qiáng)的容錯(cuò)能力。將對(duì)異常情況給予恰當(dāng)處理的技術(shù),稱為異常處理6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷異常處理機(jī)制無論是程序本身或用戶原因出現(xiàn)的問題,都屬于程序中的異常,異常表示例外的事件。程序執(zhí)行過程中,可能出現(xiàn)的常見例外情況:非法運(yùn)算錯(cuò)誤運(yùn)行內(nèi)存不足資源耗盡錯(cuò)誤文件不存在錯(cuò)誤網(wǎng)絡(luò)無法連接6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷運(yùn)行中出現(xiàn)異常,程序至少要做到通知用戶錯(cuò)誤產(chǎn)生保存相關(guān)數(shù)據(jù)用戶可退出程序6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷對(duì)于異常的處理通常有兩種方法計(jì)算機(jī)系統(tǒng)本身直接檢測程序中的錯(cuò)誤,遇到錯(cuò)誤時(shí)終止程序運(yùn)行由程序員在程序設(shè)計(jì)中加入處理異常的功能無異常處理:使用if/switch條件分支,對(duì)于預(yù)設(shè)錯(cuò)誤進(jìn)行判斷和處理,邏輯代碼與錯(cuò)誤處理代碼相互纏繞,可讀性及可維護(hù)性較差有異常處理:Java中采用錯(cuò)誤捕獲方式(異常處理機(jī)制),提供錯(cuò)誤通知機(jī)制,并能夠?qū)τ阱e(cuò)誤進(jìn)行善后處理,使得程序不會(huì)中斷,同時(shí)減少代碼量,提供代碼可讀性可維護(hù)性6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷異常類基類Throwable派生出兩個(gè)直接子類:Error和Exception。Error類及其所有子類用來表示嚴(yán)重的運(yùn)行錯(cuò)誤,它定義了通常無法捕捉到的異常,例如系統(tǒng)的內(nèi)部錯(cuò)誤或資源耗盡錯(cuò)誤。如果出現(xiàn)這類錯(cuò)誤,程序員只能通知用戶并試圖中止程序,不過這種情況較少發(fā)生Exception類及其子類定義了程序可以捕捉到的異常,在編程中要處理的異常主要是這一類6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷異常的捕獲和處理認(rèn)識(shí)程序運(yùn)行的錯(cuò)誤類型及位置Exception類定義了程序可捕捉的異常。Exception類有兩個(gè)重要子類:RuntimeException和IOExceptionRuntimeException類的異常一般是編程原因,如:錯(cuò)誤的類型轉(zhuǎn)換(NumberFormatException)數(shù)組越界訪問(ArrayIndexOutOfBoundsException)空指針訪問(NullPointerException)除以零的算術(shù)操作(ArithmeticException)6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷IOException類的異常原因主要一些意外情況的出現(xiàn),如:試圖讀文件結(jié)尾后的數(shù)據(jù)(EOFException)試圖打開一個(gè)錯(cuò)誤的URL(UnknownHostException)試圖根據(jù)一個(gè)根本不存在的類的字符串來找一個(gè)Class對(duì)象(ClassNotFoundException)6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷異常示例運(yùn)行結(jié)果6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷捕獲和處理異常6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷當(dāng)異常出現(xiàn)時(shí),JVM會(huì)自動(dòng)創(chuàng)建對(duì)應(yīng)地異常類對(duì)象,傳遞給運(yùn)行中的程序,并由一個(gè)稱為throwinganexception(引發(fā)異常)的操作完成6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷Java異常處理機(jī)制中的關(guān)鍵字try、catch、finallytry和catchtry{//可能引起異常的語句}catch(…){//出錯(cuò)處理程序}try-catch應(yīng)用示例如右側(cè)代碼6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷分析一下程序中可能出現(xiàn)的異常6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷對(duì)于上例出現(xiàn)的異常,可以修改為6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷多個(gè)catch的應(yīng)用示例6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷finallyfinally{//需要處理的語句}finally應(yīng)用示例:6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷try-catch-finally常用的組合用法try+catchtry+catch+finallytry+finally6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷拋出異常的方式try-catchthrowsthrow6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷try-catch示例throws示例6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷throw示例6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷自定義異常業(yè)務(wù)邏輯處理需要,如某些符合語法但不符合業(yè)務(wù)要求的情況,需要拋出對(duì)應(yīng)的異常軟件需要為用戶提供安全和直觀的異常信息,需統(tǒng)一異常展示方式自定義異常的步驟定義一個(gè)類繼承于Exception類或Throwable重載構(gòu)造函數(shù)根據(jù)需要,重寫父類的公共方法6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷自定義異常應(yīng)用示例6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷LoggingAPIJava提供了LoggingAPI(日志管理API),它可以讓程序記錄不同級(jí)別的信息,并保存在日志文件中,一旦系統(tǒng)因?yàn)槟撤N原因崩潰,通過日志就可清晰地追溯到問題所在日志信息有8個(gè)級(jí)別,按優(yōu)先級(jí)從高到低順序:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST和ALL6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷LoggingAPI中幾個(gè)重要的類LogManager:所有Logger實(shí)例共享的類,用于維護(hù)Logger和日志服務(wù)的一組共享狀態(tài)Logger:核心類,用來記錄特定系統(tǒng)或應(yīng)用程序組件的日志消息LogRecord:用于在日志框架和單個(gè)日志Handler之間傳遞日志請(qǐng)求Handler:用于從Logger中獲取日志信息,并將這些信息導(dǎo)出Formatter:日志格式化處理器,為格式化LogRecords提供支持6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷日志管理類的處理流程:當(dāng)程序要?jiǎng)?chuàng)建Logger對(duì)象時(shí),如LogManager(Logger工廠)已存在當(dāng)前Logger的名字,則直接使用,否則LogManager讀取系統(tǒng)配置,設(shè)置默認(rèn)級(jí)別INFO,返回一個(gè)新的日志管理類對(duì)象。語句1就是通過這個(gè)方式創(chuàng)建一個(gè)test.log的日志管理類對(duì)象;6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷當(dāng)使用Logger來生成一條日志時(shí),首先將日志保存在LogRecord中,并由LogRecord傳送給Handler導(dǎo)出信息,信息格式則是由Formatter事先已為Handler指定好的。由于perties文件中,已設(shè)置了默認(rèn)Handler為java.util.logging.ConsoleHandler,F(xiàn)ormatter為java.util.logging.SimpleFormatter語句2執(zhí)行后,輸出INFO級(jí)別信息,且信息顯示于console(控制臺(tái))上。6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷Logger的應(yīng)用示例運(yùn)行結(jié)果6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷自定義Logger的應(yīng)用示例運(yùn)行結(jié)果6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷6.1實(shí)戰(zhàn)任務(wù)六:防止背景圖片找不到而導(dǎo)致的程序中斷6.1實(shí)戰(zhàn)任務(wù)六:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024上海市高壓供用電合同
- 2024安徽省集體合同條例
- 2024個(gè)人之間借款合同參考范本
- 2024【挖機(jī)轉(zhuǎn)讓協(xié)議合同范本】出租車轉(zhuǎn)讓協(xié)議合同范本
- 2024小區(qū)門衛(wèi)勞動(dòng)合同范本
- 深圳大學(xué)《游戲發(fā)行的商業(yè)實(shí)戰(zhàn)》2021-2022學(xué)年第一學(xué)期期末試卷
- 寫字樓物業(yè)停電應(yīng)急預(yù)案(9篇)
- 關(guān)于新學(xué)期學(xué)習(xí)計(jì)劃范文集合七篇
- 眼鏡店開荒保潔施工合同
- 體育學(xué)校租賃協(xié)議
- 單元主題-生物體的結(jié)構(gòu)層次教學(xué)設(shè)計(jì)
- 外研版英語2024七年級(jí)上冊(cè)全冊(cè)單元知識(shí)清單(默寫版)
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 2024公安機(jī)關(guān)人民警察高級(jí)執(zhí)法資格考試題(解析版)
- 2024年國家公務(wù)員考試行測真題及答案(完整版)
- 17難忘的潑水節(jié)第一課時(shí)公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 大一統(tǒng)王朝的鞏固(課件) 2024-2025學(xué)年七年級(jí)歷史上冊(cè)同步教學(xué)課件(統(tǒng)編版2024)
- 課件第一章第1節(jié)動(dòng)量定理(16張)
- 2024年銀行合規(guī)心得體會(huì)(五篇)
- 水生產(chǎn)企業(yè)(自來水公司)水務(wù)安全生產(chǎn)三項(xiàng)制度(安全生產(chǎn)責(zé)任制、制度、操作規(guī)程)匯編
- 加強(qiáng)學(xué)校食堂管理提高食品安全意識(shí)(培訓(xùn)課件)
評(píng)論
0/150
提交評(píng)論