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)

主站蜘蛛池模板: 114级毛片免费观看| 亚洲码在线中文在线观看| 国产美女精品人人做人人爽| 精品福利视频网| 国产一级毛片在线| 在线观看视频99| 久久综合色播五月男人的天堂| 女人av社区男人的天堂| 欧美啪啪精品| 国产SUV精品一区二区6| 人妻精品久久无码区| 国外欧美一区另类中文字幕| 蜜芽一区二区国产精品| 国产波多野结衣中文在线播放| 日韩欧美视频第一区在线观看| 中国成人在线视频| 色一情一乱一伦一区二区三区小说| 欧美亚洲国产日韩电影在线| 丁香综合在线| 热九九精品| 国产手机在线ΑⅤ片无码观看| 日本AⅤ精品一区二区三区日| 18禁黄无遮挡网站| 欧美专区日韩专区| 欧美一级99在线观看国产| 伊人激情久久综合中文字幕| 国产精品永久不卡免费视频| 欧美在线精品怡红院| 国产精品久久久久婷婷五月| av在线无码浏览| 久久久黄色片| 国产精品大尺度尺度视频| 国产精品妖精视频| 国产成人一区在线播放| 久久黄色视频影| 亚洲A∨无码精品午夜在线观看| 在线观看国产精美视频| 香蕉伊思人视频| 大学生久久香蕉国产线观看| av一区二区无码在线| 国产乱人伦偷精品视频AAA| 国产精品无码翘臀在线看纯欲| 亚洲成人一区二区| 中字无码精油按摩中出视频| 高清久久精品亚洲日韩Av| 国产精品欧美在线观看| 亚洲美女操| 青青青国产在线播放| 国产在线麻豆波多野结衣| 91视频精品| 亚洲天堂网视频| 中文字幕2区| 久久精品中文无码资源站| av尤物免费在线观看| 国产精品久久精品| 午夜啪啪网| 国产91导航| 四虎影视国产精品| 最新痴汉在线无码AV| 久久久久亚洲精品无码网站| 欧美日韩免费在线视频| 色婷婷视频在线| 日本福利视频网站| 日韩精品高清自在线| 真实国产精品vr专区| 在线日韩日本国产亚洲| 久久午夜影院| 国产一级小视频| 国模私拍一区二区| 国产大片喷水在线在线视频| a网站在线观看| 老司机久久99久久精品播放 | 精品成人一区二区三区电影| 中文无码毛片又爽又刺激| 69av免费视频| 欧美精品亚洲日韩a| 欧美天堂在线| 狼友视频国产精品首页| 欧美成人午夜影院| 日本AⅤ精品一区二区三区日| 欧洲欧美人成免费全部视频| 永久免费精品视频|