999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA常見異常處理研究

2016-08-23 04:26:52李婷玉
速讀·中旬 2016年7期

李婷玉

摘 要:程序設計語言的重要標志就是異常處理機制,用來對程序運行在程序設計過程中出現的異常情況進行處理。異常處理在傳統的程序設計語言里十分的復雜,Java不僅將異常處理機制引進來,作為程序設計語言,它還面向對象。異常處理如果做到合理完備,不僅可以使軟件的健壯性以及程序運行的可靠性大為增加,還可以對錯誤的位置進行快速的確定。

關鍵詞:Java;異常處理;處理原則

一、前言

編程不出錯是保證程序正常運行的基礎,但編程出現異常卻是經常的事。Java包括了三類錯誤:語法錯誤、運行錯誤、邏輯錯誤。Java的對象極為廣泛,是面向對象的程序設計語言。在編程的時候,如果有應對程序異常的機制,編程就可減少錯誤代碼所造成的損失。本文提供了處理異常的機制及原則,可給編程人員減少大量的工作。

二、Java異常處理機制

程序運行錯誤會引起異常。沒有異常捕獲和處理代碼的程序會非正常終止,并可能引起嚴重問題。在編程的時候,如果用面向對象的方法處理異常,就必須建立類的層次。而在Java中,Throwable是所有可以通過throw拋出或catch捕獲錯誤的基類。Throwable類有兩個直接子類:Error類和Exception類。Error類由Java虛擬機拋出,描述內部的系統錯誤,如虛擬機錯誤、裝載錯誤、動態連接錯誤、GUI實時系統的嚴重錯誤,這類錯誤很少發生,如果發生,除了通知用戶以及盡量穩妥地結束程序以外,幾乎什么也不能做。究其原因,與電腦的硬件及運行系統有關,大多跟程序的編寫并無關系,所以,不比用程序去捕捉(在極為特別的條件下,也要用程序去捕捉)。Exception類描述由程序和外部環境引起的錯誤,這些錯誤能通過程序捕獲和處理。在編程時,程序出現的大部分異常可由Throwable或者所包含的子類去表示,這種表示可傳遞發生點與連接點之間的程序。程序中的異常捕捉可由try語句中的catch來建立。在處理程序異常的整個過程中,Java VM把線程中尚在運行的語句、方法、表達式和域初始化表達式給終止掉。此過程會處在不斷活動中,只有當出現異常句柄時才會終止,同時會彈出所處理異常的類來表示它已處理異常。如若未彈出這樣的句柄,就要用另外一種方法來處理該異常,即調用父線程Thread Group的方法uncaught Exception,以此來處理潛在的異常,此方法能夠處理絕大部分的異常。

三、異常處理的原則

Java異常處理結構由三部分組成,包括try、catch和finally。其中try塊以關鍵字try開始,后面跟由花括號({})括起來的語句塊,其中包括可能拋出異常的語句;catch塊以關鍵字catch開始,后面跟圓括號中的異常參數和花括號中的處理異常的語句塊;finally塊包含清除程序沒有釋放的資源等。在程序中,不管try塊以何種方式退出,最終都要流入finally塊,執行finally塊的代碼。Java通常在處理異常時有聲明異常、拋出異常及捕捉異常等三種處理模式。

(一)創建與拋出異常

在程序的編寫中,程序不能正常運行時,窗口會創建和跑出異常。在Java中,能夠實現不在方法中直接捕獲,而是在Throw語句中將異常拋給上層。Throw的最大作用在于能夠明確地拋出異常;在這個過程中,要以Throwable的實例句柄為基礎,利用參數傳到catch語句中(也可以用new語句進行創建)。

Throw:通常情況下,異常捕捉的實現都是靠系統來完成的,在實際編程中也可以通過throw語句來跑出異常。throw語句的格式為:throw new異常類名(信息)。其中異常類名為系統異常類名或用戶自定義的異常類名,“信息”是可選項。稱為異常信息,可以使用get Message()獲得。

throws:在編程中,如果由一個方法引發的異常,并且自身無處理功能,那么編程者就要指明該異常,并且運用調用者來處理該異常。Throws還有一個重要的功能,就是標出方法中的所有異常。Runtime Exception、Error以及它們的子類都稱為免檢異常。除Runtime Exception、Error(包括它們的子類)以外的所有異常都稱作必檢異常,必檢異常是指編譯器會強制編程人員檢查異常并處理這些異常。為避免過多地使用try-catch,Java語言不允許編寫捕獲或者聲明免檢異常的代碼。所以在程序中如果想通過方法來引發Exception或除Runtime Exception之外的其子類,就需要throws語句來顯示異。

(二)捕獲異常

在程序的編寫中,方法語句如果要拋出異常,在此先假設異常能被捕捉并最終被處理。這種假設的好處在于預先在專注于正在解決的問題,然后在別的地方處理這些代碼中的錯誤。

在運行時,一個try子句或許會拋出許多種異常,正因為此,在catch的定義中,就要求對catch進行多重定義,以對多個異常進行捕捉。一般情況下,一個catch語句只能捕捉一個異常,如果要catch語句捕捉多個異常,它就要滿足以下三個條件的任何條件之一:

(1)其他異常與該異常的參數相同

(2)其他異常的子類的參數與該異常或者其子類的參數相同

(3)異常實現參數所定義的接口。

如若所有的catch語句跟系統所拋出的異常都不匹配,則當前的方法不能處理該異常,系統的程序流程將回到該方法的上層方法,如果這層方法中catch的定義與該異常相匹配,異常將被處理;如果這層的方法中找不到相匹配的catch語句,則由Java來處理這個異常。遇到這種情況,系統通常會終止程序的運行,退出,退出虛擬機返回操作系統,在標準上打印相關的異常信息。

(三)finally的應用

Java對垃圾的回收是通過對系統的釋放和回收來實現的(內存之外的資源例外)。想恢復內存之外的資源就要回到初始狀態,在此就要用到finally語句。在打開諸如網絡連接、圖片或者文件時,程序在運行時都有可能拋出異常(并且沒有被捕捉),資源就有可能不能被釋放。這種情況下,就要使用finally語句,在finally語句中可以把要釋放的資源寫在其中,不論try有沒有拋出出異常,finally子句能夠在回收機制發生作用前得到執行,確保資源正確釋放。

在編程中,Java對異常的處理有著重要的作用,是編寫程序、開發軟件不可或缺的部分,但在實際編程中卻經常被忽視。本文分析了異常的處理機制及原則,對異常的處理有著積極的作用,很大程度上提高了系統的安全性和穩定性,也提高了編程、開發軟件的效率,有效節省了人力物力。

參考文獻:

[1] 朱丹丹.芻議Java動態類加載機制研究與應用[J]. 電子技術與軟件工程. 2016(07)

[2] 張祎.項目教學法在java教學中的應用初探[J]. 職業教育與區域發展. 2016(01)

[3] 于守良.關于Java面向對象程序設計課程的思考[J]. 中國教育技術裝備. 2013(15)

主站蜘蛛池模板: 天天摸夜夜操| 中日无码在线观看| 一区二区在线视频免费观看| 欧美69视频在线| 99热免费在线| 国产福利小视频在线播放观看| 欧美一区二区三区香蕉视| 最新亚洲人成无码网站欣赏网| 亚洲精品国产综合99| 国产精品无码久久久久AV| 国内丰满少妇猛烈精品播| 成人国产小视频| 国产亚洲精品无码专| 日韩AV无码一区| 国产91高清视频| 亚洲无码在线午夜电影| 亚洲日韩AV无码精品| 最新日韩AV网址在线观看| 91偷拍一区| 国产主播在线观看| 伊人查蕉在线观看国产精品| 中文字幕天无码久久精品视频免费 | 亚洲性视频网站| 91精品专区国产盗摄| 精品欧美一区二区三区久久久| 尤物午夜福利视频| 日韩美毛片| 中文字幕精品一区二区三区视频 | 精品无码一区二区三区在线视频| 国产午夜人做人免费视频中文 | 亚洲区第一页| 色吊丝av中文字幕| 免费毛片a| 亚洲视频免| 激情综合图区| 久青草网站| 不卡无码h在线观看| 9久久伊人精品综合| 国产精品亚欧美一区二区| 好吊色妇女免费视频免费| 波多野结衣中文字幕久久| 亚洲天堂成人| 色综合热无码热国产| 国产精品高清国产三级囯产AV| 色哟哟国产精品| 亚洲欧美不卡中文字幕| 波多野结衣中文字幕一区| 高清码无在线看| 国产免费久久精品99re不卡| 国产在线观看91精品| jijzzizz老师出水喷水喷出| 亚洲天堂首页| 亚洲成人一区在线| 日本伊人色综合网| 香蕉色综合| 国产视频一区二区在线观看| 国产午夜在线观看视频| 国产产在线精品亚洲aavv| 亚洲中文字幕23页在线| 国内黄色精品| 国产精欧美一区二区三区| 精品国产自在在线在线观看| 国产福利一区视频| 2021国产精品自产拍在线观看 | 亚洲精品视频在线观看视频| 久久青草视频| 国产啪在线91| 欧美激情网址| 丁香婷婷激情综合激情| 久久婷婷综合色一区二区| 一级毛片a女人刺激视频免费| 国产剧情伊人| av在线5g无码天天| 狠狠色噜噜狠狠狠狠奇米777| 国产精品美人久久久久久AV| 亚洲日韩高清在线亚洲专区| 免费又黄又爽又猛大片午夜| 亚洲无码37.| 日韩高清一区 | 欧美日本在线播放| 日韩色图区| 日本久久网站|