成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

網(wǎng)站建設(shè)核心之捕獲異常

2022-08-07    分類: 網(wǎng)站建設(shè)

有些代碼必須捕獲異常,捕獲異常需要進(jìn)行周密的計劃。
如果某個異常發(fā)生的時候沒有在任何地方進(jìn)行捕獲,那程序就會終止執(zhí)行,并在控制臺上打印出異常信息,其中包括異常的類型和堆棧的內(nèi)容。對于圖形界面程序(applet和application應(yīng)用程序),在捕獲異常之后,也會打印出堆棧的信息,但程序?qū)⒎祷氐接脩艚缑娴奶幚硌h(huán)中(在調(diào)試基于圖形界面的程序時,保證控制臺窗口可見,并且沒有被極小化)。
捕獲一個異常,必須設(shè)置try/catch語句塊,如果在try語句塊中的任何代碼拋出了一個在catch+句中說明的異常類,那么:
1.程序?qū)⑻^try語句塊的其余代碼。
2.程序?qū)?zhí)行catch子句中的處理器代碼。
如果在try語句塊中的代碼沒有拋出任何異常,那么程序?qū)⑻^catch子句。
如果方法中的任何代碼拋出了一個在catch+句中沒有聲明的異常類型,那么這個方法就會立刻退出(期待調(diào)用者為這種類型的異常設(shè)計了catch子句)。
需要注意,try語句中的大多數(shù)代碼都很容易理解:讀取并處理文本行,直到遇到文件結(jié)束符為止。正如在JavaAPI中看到的那樣,read方法有可能拋出一個IOException異常。在這種情況下,將跳出整個while循環(huán),進(jìn)入catch子句,并輸出堆棧情況。對于一個普通的程序來說,這樣處理異?;旧虾虾跚槔?。還有其他的選擇嗎?
通常,的選擇是什么也不做,而是將異常傳遞給調(diào)用者。如果read方法出現(xiàn)了錯誤,就讓read方法的調(diào)用者去操心!如果采用這種處理方式,就必須聲明這個方法可能會拋出一個IOException。
請記住,編譯器嚴(yán)格地執(zhí)行throws說明符。如果調(diào)用了一個拋出已檢查異常的方法,就必須對它進(jìn)行處理,或者將它傳遞出去。
哪種方法更好呢?通常,應(yīng)該捕獲那些知道如何處理的異常,而將那些不知道怎樣處理的異常傳遞出去。如果想將異常傳遞出去,就必須在方法的首部添加一個throws說明符以便告知調(diào)用者這個方法可能會拋出異常。
仔細(xì)閱讀一下JavaAPI文檔,以便知道每個方法可能會拋出哪種異常,然后再決定是自己處理,還是添加到throws列表。對于后一種情況,也不必猶豫。將異常直接交給能夠勝任的處理器進(jìn)行處理要比壓制對它的處理更好。
同時請記住,這個規(guī)則也有一個例外。如果編寫一個覆蓋超類的方法,而這個方法又沒有拋出異常,那么這個方法就必須捕獲方法代碼中出現(xiàn)的每一個已檢查異常。不允許在子類的thrws說明符中出現(xiàn)超過超類方法所列出的異常類范圍。

分享文章:網(wǎng)站建設(shè)核心之捕獲異常
路徑分享:http://jinyejixie.com/news34/186434.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項(xiàng)目有網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
新津县| 贵州省| 贞丰县| 彰化县| 临澧县| 彭州市| 扶绥县| 泰安市| 江西省| 双鸭山市| 顺昌县| 青铜峡市| 锦州市| 金华市| 华池县| 兴文县| 顺昌县| 平利县| 响水县| 资中县| 双辽市| 远安县| 昌宁县| 翼城县| 托克逊县| 焉耆| 呼和浩特市| 津南区| 修武县| 翼城县| 巨鹿县| 兰溪市| 阿拉善右旗| 尉犁县| 湄潭县| 新源县| 都匀市| 邵东县| 射洪县| 泰州市| 凤城市|