freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java異常處理ppt課件-展示頁

2025-01-23 07:05本頁面
  

【正文】 用異常機制 2022年 2月 11日星期五 NCEPU ?終止程序會導(dǎo)致資源泄漏,利用異常處理釋放資源 ?盡可能近地處理異常,這樣程序清晰易讀 ?能在局部處理的錯誤不要使用異常機制 ?異常機制的處理比正常處理效率低 處理異常時的注意事項 2022年 2月 11日星期五 NCEPU Contents 2022年 2月 11日星期五 NCEPU 1 錯誤與異常 ?在程序運行時,經(jīng)常會出現(xiàn)一些非正常的現(xiàn)象,如死循環(huán)、非正常退出等,稱為 運行錯誤 。 2022年 2月 11日星期五 NCEPU Java 處理錯誤的方法 我們把生成異常對象并把它提交給運行時系統(tǒng)的過程稱為 拋出 (throw)一個異常。 2022年 2月 11日星期五 NCEPU 如果所有的方法都選擇了拋出此異常, 最后 JVM將捕獲它,輸出相關(guān)的錯誤信息,并終止程序的運行。 異常發(fā)生時,你不能解決問題,所以必須拋出一個異常( throw) ? 一個異常對象建立起來了 ? 當前運行的路徑被停止,異常對象被彈出 ? 異常處理機直接管,開始尋找一個合適的地方來繼續(xù)執(zhí)行 2022年 2月 11日星期五 NCEPU ? 把錯誤處理代碼從常規(guī)代碼中分離出來 ? 按錯誤類型分組( 類 Exception,派生 ) ? 對無法預(yù)測的錯誤可以捕獲和處理( 基類,所有的異常類都是 Exception類的子類 ) ? 克服了傳統(tǒng)方法錯誤信息有限的問題( getMessage) ? 把錯誤傳播給調(diào)用堆棧( 比較:全局變量,返回值 ) 異常機制的優(yōu)點 method1 method2 method3 method4 探測拋出異常 傳 遞 捕獲處理異常 調(diào) 用 2022年 2月 11日星期五 NCEPU ()。 } finally { dosomething。 } catch (readFailed) { dosomething。 } catch (sizeDetermineFailed) { dosomething。 closeTheFile。 allocate that much memory。 try { //Code that may make exception } catch(Type1 id1){…} catch(Type1 id1){…} try { openTheFile。 ?當 Java運行時系統(tǒng)接收到異常對象時,會尋找處理這一異常的代碼并把當前異常對象交給其處理,這一過程稱為捕獲( catch)異常。 ?設(shè)計良好的程序應(yīng)該在異常發(fā)生時提供處理這些錯誤的方法,使得程序不會因為異常的發(fā)生而阻斷或產(chǎn)生不可預(yù)見的結(jié)果。 } try里寫我們 嘗試 著要做的事情, 每一個 catch針對一種可能的錯誤 每一個錯誤都有相應(yīng)的處理辦法, 并且將實現(xiàn)功能(事務(wù)邏輯)與 錯誤處理分開來 2022年 2月 11日星期五 NCEPU ? Java異常是 Java提供的用于處理程序中錯誤的一種機制。 } catch (fileCloseFailed) { dosomething。 } catch (memoryAllocateFailed) { dosomething。 } catch (fileopenFailed) { dosomething。 readFile。 determine its size。} else errorCode=5。 } else errorCode=3。 if (readFailed) errorCode=1。 if (gotTheFileLength) { allocate that much memory。 } 沒有錯誤處理的程序 2022年 2月 11日星期五 NCEPU openFiles。 allocate that much memory。 異常 的概念 2022年 2月 11日星期五 NCEPU { openTheFile。NCEPU 異常機制 2022年 2月 11日星期五 NCEPU 異常 的概念 ?在進行程序設(shè)計時,錯誤的產(chǎn)生是不可避免的 ? 如何處理錯誤? ? 把錯誤交給誰去處理? ? 程序又該如何從錯誤中恢復(fù)? ?這是任何程序設(shè)計語言都要解決的問題 2022年 2月 11日星期五 NCEPU 所謂 錯誤 ,是在程序運行過程中發(fā)生的異常事件,比如除 0溢出、數(shù)組越界、文件找不到等,這些事件的發(fā)生將阻止程序的正常運行。為了加強程序的強壯性( robust),程序設(shè)計時,必須考慮到可能發(fā)生的異常事件并做出相應(yīng)的處理。 determine its size。 readfile closeTheFile。 if (theFilesOpen) { determine the length of the file。 if (gotEnoughMemory) { read the file into memory。 else errorCode = 2。} else errorCode=4 。 以常規(guī)方法處理錯誤 2022年 2月 11日星期五 NCEPU ?程序可讀性差,大量的錯誤處理代碼混雜在程序中 ?觀察前面的程序,會發(fā)現(xiàn)大部分精力花在出錯處理上 ?只把能夠想到的錯誤考慮到,此外的情況無法處理 ?出錯返回信息量太少,無法更確切的了解錯誤狀況或原因 以常規(guī)方法處理錯誤存在的問題 2022年 2月 11日星期五 NCEPU 用異常的形式處理錯誤 try { openTheFile。 allocate that much memory。 closeTheFile。 } catch (sizeDetermineFailed) { dosomething。 } catch (readFailed) { dosomething。 } finally { dosomething。 ?所謂錯誤是指在程序運行過程中發(fā)生的一些異常事件(如:除 0溢出,數(shù)組下標越界,所要讀取的文件不存在)。 Java的異常處理機制 2022年 2月 11日星期五 NCEPU ? Java程序的執(zhí)行過程中如出現(xiàn)異常事件,可以生成一個異常類對象,該異常對象封裝了異常事件的信息并將被提交給 Java運行時系統(tǒng),這個過程稱為拋出( throw)異常。 Java的異常處理機制 2022年 2月 11日星期五 NCEPU Catch an exception ? Java的異常機制的好處 使我們在一個地方將精力集中在要解決的問題上,而在另一個地方處理來自那部分代碼的異常情況。 determine its size。 readFile。 } catch (fileopenFailed) { dosomething。 } catch (memoryAllocateFailed) { dosomething。 } catch (fileCloseFailed) { dosomething。 } 2022年 2月 11日星期五 NCEPU 如何處理 Throw an exception throw new NullPointerException()。 2022年 2月 11日星期五 NCEPU 在異常被拋出的過程中 , 任何方法都可以捕獲異常并進行相應(yīng)的處理。 2022年 2月 11日星期五 NCEPU Java通過面向?qū)ο蟮姆椒▉硖幚沓绦蝈e誤,在 Java中,錯誤被稱為 異常 ( Exception) (例外) Java 處理錯誤的方法 在一個方法的運行過程中,如果發(fā)生了異常,則這個方法(或者是 Java虛擬機)生成一個代表該異常的對象(包含了該異常的詳細信息),并把它交給運行時系統(tǒng),運行時系統(tǒng)尋找相應(yīng)的代碼來處理這一異常。 運行時系統(tǒng)在方法的調(diào)用棧中查找,從生成異常的方法開始進行回朔,直到找到包含相應(yīng)異常處理的方法為止,這一個過程稱為 捕獲 (catch)一個異常。 ?根據(jù)錯誤的性質(zhì)將運行錯誤分成兩類: 錯誤 和 異常 。 ?例如:程序進入了死循環(huán),或遞歸無法結(jié)束、或內(nèi)存溢出。 2022年 2月 11日星期五 NCEPU 1 錯誤與異常 二、異常 ?異常是 非致命性 的,通過某種修正后,程序還能繼續(xù)執(zhí)行。 ?在源程序中加入處理異常的代碼,當程序運行中出現(xiàn)異常時, 由異常處理代碼調(diào)整程序運行方向 ,使程序仍然可以繼續(xù)運行直至正常結(jié)束。 例如數(shù)組下標越界、除數(shù)為 0,等。 Object Throwable Error 錯誤類 Exception 異常類 異常類 Exception: 當發(fā)生異常時,產(chǎn)生一個 異常事件 ,生成一個 異常對象 ( Exception類或其子類對象),并把它提交給運行系統(tǒng), 再由運行系統(tǒng)尋找相應(yīng)的代碼來處理異常。 :Exception類有各種不同的子類 ,分別對應(yīng)不同類型的異常 , 如除數(shù)為 0的算術(shù)異常 ,數(shù)組下標越界異常 ,空指針異常等。 異常對象中包含了異常事件類型、程序運行狀態(tài)等必要的 信息。簡單地說: 發(fā)現(xiàn)異常的代碼可以“ 拋出 ”一個異常, 運行系統(tǒng)“ 捕獲 ”該異常,交由程序員編寫的相應(yīng)代碼 進行異常處理。死循環(huán)、遞歸無法結(jié)束、動態(tài)鏈接錯誤等。 2022年 2月 11日星期五 NCEPU 1 異常處理 一、異常的產(chǎn)生 public class HelloWorld { public static void main (String args[]){ int i = 0。 while ( i 4 ) { ( greetings [ i ] ) 。 } } } greetings[0]=Hello world!“ greetings[1]=No, I mean it ! greetings[2]=HELLO WORLD!! i = 0時,輸出 greetings[0]: Hello world! = 1 tings[1 : No, I mean it ! = 2 : HELLO WORLD!! = 3時,數(shù)組下標越界,此時系統(tǒng)報告異常對象類型: Exception in thread main BoundsException:3 at (:9) 異常對象類型:數(shù)組越界異常類 第幾個數(shù)組下標越界 發(fā)生異常的方法 發(fā)生異常的類 發(fā)生異常的行 2022年 2月 11日星期五 NCEPU 2 異常處理 一、異常的產(chǎn)生 public class Try1 { public static void main (String args[]){ int i = 0。 //簡單類型不 new也行 for ( 。 i ++) { ( a[ + i +]=+a[ i ] ) 。 } } i = 0時,輸出: a [ 0 ] = 5 = 1 1 ] 6= 2 2 ] 7= 3 3 ] 8= 4時,數(shù)組下標越界,此時系統(tǒng)報告異常對象類型: Exception in thread main BoundsException:4 at (:6) 此時終止程序運行,因此不會執(zhí)行 同樣會產(chǎn)生異常的輸出語句: 2022年 2月 11日星期五 NCEPU 2 異常處理 一、異常的產(chǎn)生 public class Try1 { public static void main (String args[]){ int i = 0。 for ( 。 i ++) { ( a[ + i +]=+a[ i ] ) 。 } } 3/0時,產(chǎn)生算術(shù)異常,此時系統(tǒng)報告異常對象類型: Exception in thread main ption: / by zero at (:9) 算術(shù)異常,由分母為 0產(chǎn)生 2022年 2月 11日星期五 異常處理機制 捕獲異常 聲明拋出異常 throws Trycatch 消極的處理方式 積極的處理方式
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1