日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java違例控制總結

瀏覽:201日期:2024-06-14 13:53:05
內容: Java違例控制 總結Java違例控制 本文主要討論Java中的違例控制,包括以下內容:1)什么是違例控制2)違例的概念3)Java中違例的類層次結構4)如何擲出和捕獲違例5)捕獲以后如何處理違例本文將通過深入以上細節,向你完整地展現Java中違例的全貌,使得你能夠在以后的程序編寫中得心應手地處理各種可能遭遇的情況。什么是違例控制簡單地說,違例控制就是在程序中提供給你這樣一種能力:1)監視程序中的異常情況2)當異常情況發生時,將控制權交給你自己編寫的違例控制代碼違例控制的流程在Java中,這些工作由以下關鍵字來完成:try,catch,throw,throws,finally,他們的基本代碼結構如下:try{ //代碼塊}catch(ExceptionType e){ //此違例類型的控制代碼}finally{ //清除回收等工作}首先執行try中包含的代碼塊,如果遇到執行錯誤,程序擲出(throw)一特定類型的違例,你捕捉到此違例并轉而執行catch中的違例控制代碼。最后,無論程序是否產生違例都必須執行finally中的代碼,其主要為一些變量清除、資源回收(1)等工作。違例的類層次結構 違例的類層次結構 首先讓我們來看看Throwable類,Sun是這樣來描述它的:The Throwable class is the superclass of all errors and exceptions in the Java language. Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement. Similarly, only this class or one of its subclasses can be the argument type in a catch clause. Instances of two subclasses,Error and Exception,are conventionally used to indicate that exceptional situations have occurred. Typically, these instances are freshly created in the context of the exceptional situation so as to include relevant information (such as stack trace data). 從中我們可以看出:1)在Java中,違例對象必然是從Throwable中衍生出來的一個類的實例。2) Throwable包含兩個直接子類Error(錯誤)和Exception(違例)。3)我們可以創建自己的違例類,只要它是從Throwable或其子類中衍生出來即可(確切地講應該是從Exception或其子類中衍生出來,本文不準備詳細討論如何創建自己的違例類,你可以參考相關的資料)。Error類和Exception類Error表示那些由于異常情況引起的嚴重錯誤,我們不應去捕獲這類對象,它主要包括系統內部錯誤以及資源耗盡等情況。而Exception類表示那些你必須去捕捉并處理的情況。檢查違例(Checked Exceptions)和不檢查違例(Unchecked Exceptions)在Exception的子類中有一個非常重要的類:RuntimeException(2)。Java中將自它或者它的子類衍生出來的任何違例都稱作“不檢查違例(Unchecked Exceptions),自其他Exception子類衍生出來的違例都稱作“檢查違例(Checked Exceptions)(3)。不檢查違例包括的問題主要有:造型錯誤,數組越界存取,空指針訪問等,這些問題一般來說都是你程序編寫的問題。簡單地說,不檢查違例就是那些由編譯器來檢查而無需你程序中控制的違例。而檢查違例是指那些你必須處理的違例,否則編譯時會產生一個編譯錯誤。你可以選擇下面任意一種方法來處理它:1)捕獲違例:在try代碼塊后面緊跟catch處理代碼塊2)聲明違例:在方法簽名中用throws來通告可能會產生違例Throwable類的構造器和方法上面我們已經提到throwable是所有違例的超類,在這里我們就來分析一下它。Throwable類有四個構造器方法: Throwable() Throwable(String message) Throwable(String message,Throwable cause) Throwable(Throwable cause) 后兩個是在JDK1.4中新出現的方法,用來支持所謂的鏈式違例(chained exception)機制(4)。接著,我們來看看throwable的一些主要方法: fillInStackTrace() getStackTrace() printStackTrace() setStackTrace(StackTraceElement[] stackTrace) 這四個方法是用來處理StackTrace的,如果你對StackTrace不是很熟悉,你可以這樣理解它:就是當程序由于運行時錯誤終止時你在屏幕上看到的那些東西。 getLocalizedMessage() getMessage() 這兩個方法提供了訪問封裝在違例對象里的消息的接口。 toString() Throwable重載了Object類的toString方法,用來返回一個Throwable的簡短描述。 所有的違例對象都繼承了throwable類的以上方法,所以你可以在catch代碼塊中調用其中任意一個方法,比如你可以使用getMessage方法來顯示違例的詳細信息。 那到底違例是什么意思呢? 在此我們引用Campione,Walrath在《The Java Tutorial》(5)中的原話:The term exception is shorthand for the phrase 'exceptional event'. It can be defined as follows: Definition: An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions.'每當一個方法中有異常情況發生,它就實例化一個違例對象并把控制權交給運行時系統來處理,這些工作都是由throw來完成的(也就是我們通常所說的擲出一個違例)。而且該違例對象一般保存有自己的類型以及違例發生時程序狀態等信息。處理違例由上可以看出,是由運行時系統來負責找出處理違例的代碼。每當違例發生后,運行時系統就開始向后搜索合適的違例控制器(catch代碼塊),比較的標準是:違例控制器中的違例類型必須是產生的違例類型或其超類。如果直到程序的結尾也沒有找到合適的控制器,程序自動終止。違例控制的優點相對于傳統的錯誤處理機制,違例控制具有以下優點:1)將錯誤處理代碼和常規代碼分開2)將錯誤交給調用棧處理,這就是所謂“將事情交給最合適的人來完成的思想3)通過將違例進行分類,可以讓我們很容易地看出錯誤的所在和原因違例控制的更多細節我們在前面說過,除了由Error類和RuntimeException類衍生出來的違例外,你必須在程序中控制(handle)或者聲明(declare)所有可能被擲出的違例,也就是所有的檢查違例都必須得到處理,否則編譯器就會對你亮起紅燈,拒絕編譯。捕獲違例選擇捕獲違例意味著你的程序中必須存在有catch程序塊,而且參數ExceptionType的類型必須是被擲出違例的類型,或者是其某一繼承鏈中的超類(supperclass)(6)。聲明違例如果在方法中會產生檢查違例,但你又未在此方法中提供此違例的違例控制,那么你就必須聲明此方法可能會擲出某特定違例,利用關鍵字throws就可以達到此目的。語法結構為(只列出方法的簽名signature部分):methodName(paramType param) throws ExceptionType到底方法中會擲出哪些違例呢?它包括你的方法中本身代碼擲出的違例,你調用的方法擲出的違例,甚至還包括你調用的方法中調用的其他方法擲出的違例,等等。總之,只要控制流還在你的方法范圍內,所有擲出的違例都是你必須考慮的。實例代碼/** *

Title:Except1.java

*

Description: Tested using JDK1.4.0 under Win2000 Professional

* @author Mac * @version 2002/9/9 */import java.lang.Thread;class Except1{public static void main(String[] args){ Except1 obj = new Except1(); try { //begin try block obj.myMethod();}catch(InterruptedException e){ System.err.println(“Handle exception here);} //end catch block} //end main void myMethod() throws InterruptedException{ Thread.currentThread().sleep(1000);} //end myMethod} //end class Except1在上面這個例子中,我們看到myMethod方法只是簡單地聲明自己會產生一個名為InterruptedException的違例(throws InterruptedException),而真正的處理違例部分延遲到了main方法(catch(InterruptedException e))中。運行這個例子,并回答以下問題,看你是否確實掌握了它。1、 如果去掉所有的違例控制代碼,會發生什么情況?按照提示一步步完善你的程序。2、 方法myMethod中的違例是怎么引起的?main方法中呢?3、 把catch(InterruptedException e)換成catch(Exception e)行不行?為什么?捕獲多個違例 此外,可在try代碼塊中捕獲多個違例類型,并分別對每種類型加以控制,每種類型對應于一個獨立的catch從句: try { //codes that might throw exceptions}catch(ExceptionType1 e1){ //actions do with e1}catch(ExceptionType2 e2){ //actions do with e2}catch(ExceptionType3 e3){ //actions do with e3}// …聲明多個違例能夠捕獲多個違例,當然也就可以聲明多個違例。比如在myMethod方法中就可以同時聲明四個違例: void myMethod() throws InterruptedException,MyException,HerException,OurException { //method code}finally從句前面我們已經講過,finally從句中的內容一定會被執行,無論是否有違例發生。我們可以利用這個特性,在finally從句中放置一些執行回收資源,內存釋放等功能的代碼。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd Java違例控制 總結Java違例控制 本文主要討論Java中的違例控制,包括以下內容:1)什么是違例控制2)違例的概念3)
標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
五月亚洲婷婷 | 欧产日产国产精品视频| 国产精品最新自拍| 国产情侣一区在线| 午夜性色一区二区三区免费视频| 久热re这里精品视频在线6| 99视频一区| 老牛影视一区二区三区| 一区二区精彩视频| 亚洲精品乱码久久久久久蜜桃麻豆| 蜜桃一区二区三区在线观看| 亚洲精品欧美| 日本午夜精品| 久久不见久久见免费视频7| 国产视频一区二| 国产精品香蕉| 国产一区调教| 久久久国产亚洲精品| 在线日韩欧美| 国产一区91| 日本成人精品| 麻豆一区二区三| 日韩电影二区| 好看的亚洲午夜视频在线| 久久午夜视频| 国产精品网在线观看| av在线最新| 亚洲激情偷拍| 欧美中文一区| 激情黄产视频在线免费观看| 成人av动漫在线观看| 中文视频一区| 国产精品s色| 麻豆精品蜜桃| 免费人成在线不卡| 国产精品亚洲片在线播放| 日本少妇一区| 蜜臀av一区二区在线免费观看 | 亚洲天堂av资源在线观看| 视频一区日韩精品| 老牛国内精品亚洲成av人片| 成人羞羞视频播放网站| 免费在线观看精品| 久久精品一区二区三区中文字幕| 欧美天堂视频| 国产视频亚洲| 欧美激情精品| 91国语精品自产拍| 欧美日韩一区二区国产| 秋霞影院一区二区三区| 最新国产精品视频| 国模精品一区| 中文字幕一区二区三区日韩精品| 麻豆久久一区| 亚洲黄页一区| 另类欧美日韩国产在线| 久久国产精品毛片| 日本黄色精品| 亚洲精品亚洲人成在线观看| 国产高潮在线| 综合亚洲视频| 99久久婷婷| 国产精品黄网站| 羞羞答答国产精品www一本| 精品99在线| 日本精品一区二区三区在线观看视频| 四虎4545www国产精品| 国产日韩欧美中文在线| 夜夜嗨av一区二区三区网站四季av| 国产精品66| 午夜亚洲一区| 人人精品亚洲| 激情综合五月| 欧美日韩中出| 男女性色大片免费观看一区二区 | 日韩理论视频| 国产欧美69| 热久久国产精品| 久久久久久久久丰满| 久久这里只有| 日韩精品第二页| 久久国产精品毛片| 欧美成人亚洲| 国产一区二区三区天码| 亚洲精品动态| 激情综合自拍| 伊人网在线播放| 美女视频黄免费的久久| 亚洲精品免费观看| 午夜精品婷婷| 欧美成人基地| 国产中文在线播放| 精品一区二区三区亚洲| 国产亚洲欧美日韩精品一区二区三区 | 中文字幕av一区二区三区四区| 日韩高清中文字幕一区二区| 国产精品一区二区三区美女| 亚洲精品高潮| 日韩专区一卡二卡| 亚洲精品1区| 欧美日韩国产一区二区三区不卡| av资源新版天堂在线| 欧美aa在线视频| 欧美亚洲二区| 日本一区中文字幕| 亚洲午夜久久| 午夜在线一区| 亚洲自拍另类| 国产亚洲亚洲| 亚洲欧美久久| 蜜桃视频第一区免费观看| 在线视频精品| 欧美日韩国产探花| 国产一区日韩欧美| 亚洲香蕉网站| 亚洲精品在线观看91| 亚洲国产不卡| 野花国产精品入口| 亚洲欧美日韩一区在线观看| 午夜在线观看免费一区| 国产视频一区免费看| 亚洲激情偷拍| av不卡在线| 三级欧美在线一区| 亚洲免费成人av在线| 日本在线不卡视频一二三区| 亚洲免费毛片| 日韩1区2区日韩1区2区| 国产探花一区| 国产精品2023| 激情黄产视频在线免费观看| 中国字幕a在线看韩国电影| 成人片免费看| 欧美日韩精品在线一区| 亚洲少妇在线| 亚洲精品日韩久久| 日韩动漫一区| 国产伦精品一区二区三区千人斩| 久久av资源| 日本不卡免费高清视频在线| 激情偷拍久久| 亚洲婷婷丁香| 国产精品一区二区精品| 精品国产aⅴ| 欧美精选视频一区二区| 国产高清一区二区| 日本亚洲视频| 麻豆一区二区99久久久久| 福利一区视频| 亚洲国内欧美| 亚洲精品第一| 久久精品亚洲| 电影亚洲精品噜噜在线观看| 野花国产精品入口| 日韩精品视频中文字幕| 久久精品99国产精品| 高潮久久久久久久久久久久久久| 99久久夜色精品国产亚洲狼 | 久久尤物视频| 欧美一区二区三区高清视频| 日韩中文字幕亚洲一区二区va在线 | 亚洲高清激情| 亚洲久久一区| 久久精品国产99| 亚洲成人三区| 日韩精品1区2区3区| 国产a亚洲精品| 丝袜诱惑制服诱惑色一区在线观看 | 图片区亚洲欧美小说区| 亚洲欧美一级| 97精品97| 亚洲色图综合| 精品国产乱码久久久久久1区2匹| 午夜欧美精品久久久久久久| 日本成人在线一区| 91一区二区| 中文字幕亚洲精品乱码| 国产成人调教视频在线观看| 在线亚洲自拍| 久久男人av| 免费在线观看精品| 精品精品久久| 蜜桃91丨九色丨蝌蚪91桃色| 精品国产亚洲一区二区三区在线 | 国产高清不卡| 日韩激情av在线| 亚洲综合在线电影| 欧美日韩精品一区二区三区视频| 久久九九精品| 国产精品黄色| 国产亚洲欧洲| 在线人成日本视频| 亚洲乱码一区| 97精品在线| 日韩av一级片| av一区二区高清| 麻豆视频久久| 日本亚洲不卡| 狠狠干综合网| 在线亚洲人成|