欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

JAVA異常分類及處理的方法

本篇內(nèi)容主要講解“JAVA異常分類及處理的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“JAVA異常分類及處理的方法”吧!

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)赤城免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

一.JAVA 異常分類及處理

1. 概念

如果某個方法不能按照正常的途徑完成任務(wù),就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調(diào)用這個方法的其他代碼也無法繼續(xù)執(zhí)行,異常處理機制會將代碼執(zhí)行交給異常處理器。

JAVA異常分類及處理的方法

2. 異常分類

Throwable 是 Java 語言中所有錯誤或異常的超類。下一層分為 Error 和 Exception

Error

1. Error 類是指 java 運行時系統(tǒng)的內(nèi)部錯誤和資源耗盡錯誤。應(yīng)用程序不會拋出該類對象。如果出現(xiàn)了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。

Exception(RuntimeException、CheckedException)

2. Exception 又有兩個分支,一個是運行時異常 RuntimeException ,一個是CheckedException。RuntimeException 如 : NullPointerException 、 ClassCastException ;一個是檢查異常CheckedException,如 I/O 錯誤導(dǎo)致的 IOException、SQLException。 RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現(xiàn) RuntimeException,那么一定是程序員的錯誤.

檢查異常 CheckedException:一般是外部錯誤,這種異常都發(fā)生在編譯階段,Java 編譯器會強制程序去捕獲此類異常,即會出現(xiàn)要求你把這段可能出現(xiàn)異常的程序進行 try catch,該類異常一般包括幾個方面:

1. 試圖在文件尾部讀取數(shù)據(jù)

2. 試圖打開一個錯誤格式的 URL

3. 試圖根據(jù)給定的字符串查找 class 對象,而這個字符串表示的類并不存在

3. 異常的處理方式

遇到問題不進行具體處理,而是繼續(xù)拋給調(diào)用者 (throw,throws)

拋出異常有三種形式,一是 throw,一個 throws,還有一種系統(tǒng)自動拋異常。

JAVA異常分類及處理的方法

try catch 捕獲異常針對性處理方式

4. Throw 和 throws 的區(qū)別:

位置不同

1. throws 用在函數(shù)上,后面跟的是異常類,可以跟多個;而 throw 用在函數(shù)內(nèi),后面跟的是異常對象。

功能不同:

2. throws 用來聲明異常,讓調(diào)用者只知道該功能可能出現(xiàn)的問題,可以給出預(yù)先的處理方式;throw 拋出具體的問題對象,執(zhí)行到 throw,功能就已經(jīng)結(jié)束了,跳轉(zhuǎn)到調(diào)用者,并將具體的問題對象拋給調(diào)用者。也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執(zhí)行不到。

3. throws 表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常;throw 則是拋出了異常,執(zhí)行 throw 則一定拋出了某種異常對象。

4. 兩者都是消極處理異常的方式,只是拋出或者可能拋出異常,但是不會由函數(shù)去處理異常,真正的處理異常由函數(shù)的上層調(diào)用處理。

二. JAVA 反射

1. 動態(tài)語言

動態(tài)語言,是指程序在運行時可以改變其結(jié)構(gòu):新的函數(shù)可以引進,已有的函數(shù)可以被刪除等結(jié)構(gòu)上的變化。比如常見的 JavaScript 就是動態(tài)語言,除此之外 Ruby,Python 等也屬于動態(tài)語言,而 C、C++則不屬于動態(tài)語言。從反射角度說 JAVA 屬于半動態(tài)語言。

2. 反射機制概念 (運行狀態(tài)中知道類所有的屬性和方法)

在 Java 中的反射機制是指在運行狀態(tài)中,對于任意一個類都能夠知道這個類所有的屬性和方法;并且對于任意一個對象,都能夠調(diào)用它的任意一個方法;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能成為 Java 語言的反射機制。

3. 反射的應(yīng)用場合

編譯時類型和運行時類型

在 Java 程序中許多對象在運行是都會出現(xiàn)兩種類型:編譯時類型和運行時類型。 編譯時的類型由聲明對象時實用的類型來決定,運行時的類型由實際賦值給對象的類型決定 。如:

Person p=new Student();其中編譯時類型為 Person,運行時類型為 Student。

的編譯時類型無法獲取具體方法

程序在運行時還可能接收到外部傳入的對象,該對象的編譯時類型為 Object,但是程序有需要調(diào)用該對象的運行時類型的方法。為了解決這些問題,程序需要在運行時發(fā)現(xiàn)對象和類的真實信息。然而,如果編譯時根本無法預(yù)知該對象和類屬于哪些類,程序只能依靠運行時信息來發(fā)現(xiàn)該對象和類的真實信息,此時就必須使用到反射了。

4. Java 反射 API

反射 API 用來生成 JVM 中的類、接口或則對象的信息。

1. Class 類:反射的核心類,可以獲取類的屬性,方法等信息。

2. Field 類:Java.lang.reflec 包中的類,表示類的成員變量,可以用來獲取和設(shè)置類之中的屬性值。

3. Method 類: Java.lang.reflec 包中的類,表示類的方法,它可以用來獲取類中的方法信息或者執(zhí)行方法。

4. Constructor 類: Java.lang.reflec 包中的類,表示類的構(gòu)造方法。

5. 反射使用步驟(獲取 Class 對象、調(diào)用對象方法)

1. 獲取想要操作的類的 Class 對象,他是反射的核心,通過 Class 對象我們可以任意調(diào)用類的方法。

2. 調(diào)用 Class 類中的方法,既就是反射的使用階段。

3. 使用反射 API 來操作這些信息。

6. 獲取 Class 對象的 3 種方法

調(diào)用某個對象的 getClass()方法

Person p=new Person();

Class clazz=p.getClass();

調(diào)用某個類的 class 屬性來獲取該類對應(yīng)的 Class 對象

Class clazz=Person.class;

使用 Class 類中的 forName()靜態(tài)方法(最安全/性能最好)

Class clazz=Class.forName("類的全路徑"); (最常用)

當(dāng)我們獲得了想要操作的類的 Class 對象后,可以通過 Class 類中的方法獲取并查看該類中的方法和屬性。

JAVA異常分類及處理的方法

7. 創(chuàng)建對象的兩種方法

Class 對象的 newInstance()

1. 使用 Class 對象的 newInstance()方法來創(chuàng)建該 Class 對象對應(yīng)類的實例,但是這種方法要求該 Class 對象對應(yīng)的類有默認(rèn)的空構(gòu)造器。

調(diào)用 Constructor 對象的 newInstance()

2. 先使用 Class 對象獲取指定的 Constructor 對象,再調(diào)用 Constructor 對象的 newInstance()方法來創(chuàng)建 Class 對象對應(yīng)類的實例,通過這種方法可以選定構(gòu)造方法創(chuàng)建實例。

JAVA異常分類及處理的方法

一.JAVA 異常分類及處理

1. 概念

如果某個方法不能按照正常的途徑完成任務(wù),就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調(diào)用這個方法的其他代碼也無法繼續(xù)執(zhí)行,異常處理機制會將代碼執(zhí)行交給異常處理器。

JAVA異常分類及處理的方法

2. 異常分類

Throwable 是 Java 語言中所有錯誤或異常的超類。下一層分為 Error 和 Exception

Error

1. Error 類是指 java 運行時系統(tǒng)的內(nèi)部錯誤和資源耗盡錯誤。應(yīng)用程序不會拋出該類對象。如果出現(xiàn)了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。

Exception(RuntimeException、CheckedException)

2. Exception 又有兩個分支,一個是運行時異常 RuntimeException ,一個是CheckedException。RuntimeException 如 : NullPointerException 、 ClassCastException ;一個是檢查異常CheckedException,如 I/O 錯誤導(dǎo)致的 IOException、SQLException。 RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現(xiàn) RuntimeException,那么一定是程序員的錯誤.

檢查異常 CheckedException:一般是外部錯誤,這種異常都發(fā)生在編譯階段,Java 編譯器會強制程序去捕獲此類異常,即會出現(xiàn)要求你把這段可能出現(xiàn)異常的程序進行 try catch,該類異常一般包括幾個方面:

1. 試圖在文件尾部讀取數(shù)據(jù)

2. 試圖打開一個錯誤格式的 URL

3. 試圖根據(jù)給定的字符串查找 class 對象,而這個字符串表示的類并不存在

3. 異常的處理方式

遇到問題不進行具體處理,而是繼續(xù)拋給調(diào)用者 (throw,throws)

拋出異常有三種形式,一是 throw,一個 throws,還有一種系統(tǒng)自動拋異常。

JAVA異常分類及處理的方法

try catch 捕獲異常針對性處理方式

4. Throw 和 throws 的區(qū)別:

位置不同

1. throws 用在函數(shù)上,后面跟的是異常類,可以跟多個;而 throw 用在函數(shù)內(nèi),后面跟的是異常對象。

功能不同:

2. throws 用來聲明異常,讓調(diào)用者只知道該功能可能出現(xiàn)的問題,可以給出預(yù)先的處理方式;throw 拋出具體的問題對象,執(zhí)行到 throw,功能就已經(jīng)結(jié)束了,跳轉(zhuǎn)到調(diào)用者,并將具體的問題對象拋給調(diào)用者。也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執(zhí)行不到。

3. throws 表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常;throw 則是拋出了異常,執(zhí)行 throw 則一定拋出了某種異常對象。

4. 兩者都是消極處理異常的方式,只是拋出或者可能拋出異常,但是不會由函數(shù)去處理異常,真正的處理異常由函數(shù)的上層調(diào)用處理。

二. JAVA 反射

1. 動態(tài)語言

動態(tài)語言,是指程序在運行時可以改變其結(jié)構(gòu):新的函數(shù)可以引進,已有的函數(shù)可以被刪除等結(jié)構(gòu)上的變化。比如常見的 JavaScript 就是動態(tài)語言,除此之外 Ruby,Python 等也屬于動態(tài)語言,而 C、C++則不屬于動態(tài)語言。從反射角度說 JAVA 屬于半動態(tài)語言。

2. 反射機制概念 (運行狀態(tài)中知道類所有的屬性和方法)

在 Java 中的反射機制是指在運行狀態(tài)中,對于任意一個類都能夠知道這個類所有的屬性和方法;并且對于任意一個對象,都能夠調(diào)用它的任意一個方法;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能成為 Java 語言的反射機制。

3. 反射的應(yīng)用場合

編譯時類型和運行時類型

在 Java 程序中許多對象在運行是都會出現(xiàn)兩種類型:編譯時類型和運行時類型。 編譯時的類型由聲明對象時實用的類型來決定,運行時的類型由實際賦值給對象的類型決定 。如:

Person p=new Student();其中編譯時類型為 Person,運行時類型為 Student。

的編譯時類型無法獲取具體方法

程序在運行時還可能接收到外部傳入的對象,該對象的編譯時類型為 Object,但是程序有需要調(diào)用該對象的運行時類型的方法。為了解決這些問題,程序需要在運行時發(fā)現(xiàn)對象和類的真實信息。然而,如果編譯時根本無法預(yù)知該對象和類屬于哪些類,程序只能依靠運行時信息來發(fā)現(xiàn)該對象和類的真實信息,此時就必須使用到反射了。

4. Java 反射 API

反射 API 用來生成 JVM 中的類、接口或則對象的信息。

1. Class 類:反射的核心類,可以獲取類的屬性,方法等信息。

2. Field 類:Java.lang.reflec 包中的類,表示類的成員變量,可以用來獲取和設(shè)置類之中的屬性值。

3. Method 類: Java.lang.reflec 包中的類,表示類的方法,它可以用來獲取類中的方法信息或者執(zhí)行方法。

4. Constructor 類: Java.lang.reflec 包中的類,表示類的構(gòu)造方法。

5. 反射使用步驟(獲取 Class 對象、調(diào)用對象方法)

1. 獲取想要操作的類的 Class 對象,他是反射的核心,通過 Class 對象我們可以任意調(diào)用類的方法。

2. 調(diào)用 Class 類中的方法,既就是反射的使用階段。

3. 使用反射 API 來操作這些信息。

6. 獲取 Class 對象的 3 種方法

調(diào)用某個對象的 getClass()方法

Person p=new Person();

Class clazz=p.getClass();

調(diào)用某個類的 class 屬性來獲取該類對應(yīng)的 Class 對象

Class clazz=Person.class;

使用 Class 類中的 forName()靜態(tài)方法(最安全/性能最好)

Class clazz=Class.forName("類的全路徑"); (最常用)

當(dāng)我們獲得了想要操作的類的 Class 對象后,可以通過 Class 類中的方法獲取并查看該類中的方法和屬性。

JAVA異常分類及處理的方法

7. 創(chuàng)建對象的兩種方法

Class 對象的 newInstance()

1. 使用 Class 對象的 newInstance()方法來創(chuàng)建該 Class 對象對應(yīng)類的實例,但是這種方法要求該 Class 對象對應(yīng)的類有默認(rèn)的空構(gòu)造器。

調(diào)用 Constructor 對象的 newInstance()

2. 先使用 Class 對象獲取指定的 Constructor 對象,再調(diào)用 Constructor 對象的 newInstance()方法來創(chuàng)建 Class 對象對應(yīng)類的實例,通過這種方法可以選定構(gòu)造方法創(chuàng)建實例。

JAVA異常分類及處理的方法

到此,相信大家對“JAVA異常分類及處理的方法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:JAVA異常分類及處理的方法
地址分享:http://chinadenli.net/article6/giocog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化品牌網(wǎng)站設(shè)計、響應(yīng)式網(wǎng)站網(wǎng)站設(shè)計公司、用戶體驗

廣告

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

網(wǎng)站建設(shè)網(wǎng)站維護公司