日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JAVA異常分類及處理的方法

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

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

一.JAVA 異常分類及處理

1. 概念

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

JAVA異常分類及處理的方法

2. 異常分類

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

Error

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

Exception(RuntimeException、CheckedException)

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

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

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

2. 試圖打開一個(gè)錯(cuò)誤格式的 URL

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

3. 異常的處理方式

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

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

JAVA異常分類及處理的方法

try catch 捕獲異常針對(duì)性處理方式

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

位置不同

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

功能不同:

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

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

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

二. JAVA 反射

1. 動(dòng)態(tài)語言

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

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

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

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

編譯時(shí)類型和運(yùn)行時(shí)類型

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

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

的編譯時(shí)類型無法獲取具體方法

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

4. Java 反射 API

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

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

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

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

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

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

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

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

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

6. 獲取 Class 對(duì)象的 3 種方法

調(diào)用某個(gè)對(duì)象的 getClass()方法

Person p=new Person();

Class clazz=p.getClass();

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

Class clazz=Person.class;

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

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

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

JAVA異常分類及處理的方法

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

Class 對(duì)象的 newInstance()

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

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

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

JAVA異常分類及處理的方法

一.JAVA 異常分類及處理

1. 概念

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

JAVA異常分類及處理的方法

2. 異常分類

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

Error

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

Exception(RuntimeException、CheckedException)

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

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

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

2. 試圖打開一個(gè)錯(cuò)誤格式的 URL

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

3. 異常的處理方式

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

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

JAVA異常分類及處理的方法

try catch 捕獲異常針對(duì)性處理方式

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

位置不同

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

功能不同:

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

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

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

二. JAVA 反射

1. 動(dòng)態(tài)語言

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

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

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

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

編譯時(shí)類型和運(yùn)行時(shí)類型

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

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

的編譯時(shí)類型無法獲取具體方法

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

4. Java 反射 API

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

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

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

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

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

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

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

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

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

6. 獲取 Class 對(duì)象的 3 種方法

調(diào)用某個(gè)對(duì)象的 getClass()方法

Person p=new Person();

Class clazz=p.getClass();

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

Class clazz=Person.class;

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

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

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

JAVA異常分類及處理的方法

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

Class 對(duì)象的 newInstance()

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

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

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

JAVA異常分類及處理的方法

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


新聞標(biāo)題:JAVA異常分類及處理的方法
URL鏈接:http://www.dlmjj.cn/article/giocog.html