本篇內容主要講解“JAVA異常分類及處理的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JAVA異常分類及處理的方法”吧!
專注于為中小企業提供網站制作、成都網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業赤城免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上千余家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
一.JAVA 異常分類及處理
1. 概念
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。
2. 異常分類
Throwable 是 Java 語言中所有錯誤或異常的超類。下一層分為 Error 和 Exception
Error
1. Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。
Exception(RuntimeException、CheckedException)
2. Exception 又有兩個分支,一個是運行時異常 RuntimeException ,一個是CheckedException。RuntimeException 如 : NullPointerException 、 ClassCastException ;一個是檢查異常CheckedException,如 I/O 錯誤導致的 IOException、SQLException。 RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那么一定是程序員的錯誤.
檢查異常 CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強制程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一般包括幾個方面:
1. 試圖在文件尾部讀取數據
2. 試圖打開一個錯誤格式的 URL
3. 試圖根據給定的字符串查找 class 對象,而這個字符串表示的類并不存在
3. 異常的處理方式
遇到問題不進行具體處理,而是繼續拋給調用者 (throw,throws)
拋出異常有三種形式,一是 throw,一個 throws,還有一種系統自動拋異常。
try catch 捕獲異常針對性處理方式
4. Throw 和 throws 的區別:
位置不同
1. throws 用在函數上,后面跟的是異常類,可以跟多個;而 throw 用在函數內,后面跟的是異常對象。
功能不同:
2. throws 用來聲明異常,讓調用者只知道該功能可能出現的問題,可以給出預先的處理方式;throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,并將具體的問題對象拋給調用者。也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。
3. throws 表示出現異常的一種可能性,并不一定會發生這些異常;throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。
4. 兩者都是消極處理異常的方式,只是拋出或者可能拋出異常,但是不會由函數去處理異常,真正的處理異常由函數的上層調用處理。
二. JAVA 反射
1. 動態語言
動態語言,是指程序在運行時可以改變其結構:新的函數可以引進,已有的函數可以被刪除等結構上的變化。比如常見的 JavaScript 就是動態語言,除此之外 Ruby,Python 等也屬于動態語言,而 C、C++則不屬于動態語言。從反射角度說 JAVA 屬于半動態語言。
2. 反射機制概念 (運行狀態中知道類所有的屬性和方法)
在 Java 中的反射機制是指在運行狀態中,對于任意一個類都能夠知道這個類所有的屬性和方法;并且對于任意一個對象,都能夠調用它的任意一個方法;這種動態獲取信息以及動態調用對象方法的功能成為 Java 語言的反射機制。
3. 反射的應用場合
編譯時類型和運行時類型
在 Java 程序中許多對象在運行是都會出現兩種類型:編譯時類型和運行時類型。 編譯時的類型由聲明對象時實用的類型來決定,運行時的類型由實際賦值給對象的類型決定 。如:
Person p=new Student();其中編譯時類型為 Person,運行時類型為 Student。
的編譯時類型無法獲取具體方法
程序在運行時還可能接收到外部傳入的對象,該對象的編譯時類型為 Object,但是程序有需要調用該對象的運行時類型的方法。為了解決這些問題,程序需要在運行時發現對象和類的真實信息。然而,如果編譯時根本無法預知該對象和類屬于哪些類,程序只能依靠運行時信息來發現該對象和類的真實信息,此時就必須使用到反射了。
4. Java 反射 API
反射 API 用來生成 JVM 中的類、接口或則對象的信息。
1. Class 類:反射的核心類,可以獲取類的屬性,方法等信息。
2. Field 類:Java.lang.reflec 包中的類,表示類的成員變量,可以用來獲取和設置類之中的屬性值。
3. Method 類: Java.lang.reflec 包中的類,表示類的方法,它可以用來獲取類中的方法信息或者執行方法。
4. Constructor 類: Java.lang.reflec 包中的類,表示類的構造方法。
5. 反射使用步驟(獲取 Class 對象、調用對象方法)
1. 獲取想要操作的類的 Class 對象,他是反射的核心,通過 Class 對象我們可以任意調用類的方法。
2. 調用 Class 類中的方法,既就是反射的使用階段。
3. 使用反射 API 來操作這些信息。
6. 獲取 Class 對象的 3 種方法
調用某個對象的 getClass()方法
Person p=new Person();
Class clazz=p.getClass();
調用某個類的 class 屬性來獲取該類對應的 Class 對象
Class clazz=Person.class;
使用 Class 類中的 forName()靜態方法(最安全/性能最好)
Class clazz=Class.forName("類的全路徑"); (最常用)
當我們獲得了想要操作的類的 Class 對象后,可以通過 Class 類中的方法獲取并查看該類中的方法和屬性。
7. 創建對象的兩種方法
Class 對象的 newInstance()
1. 使用 Class 對象的 newInstance()方法來創建該 Class 對象對應類的實例,但是這種方法要求該 Class 對象對應的類有默認的空構造器。
調用 Constructor 對象的 newInstance()
2. 先使用 Class 對象獲取指定的 Constructor 對象,再調用 Constructor 對象的 newInstance()方法來創建 Class 對象對應類的實例,通過這種方法可以選定構造方法創建實例。
一.JAVA 異常分類及處理
1. 概念
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。
2. 異常分類
Throwable 是 Java 語言中所有錯誤或異常的超類。下一層分為 Error 和 Exception
Error
1. Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。
Exception(RuntimeException、CheckedException)
2. Exception 又有兩個分支,一個是運行時異常 RuntimeException ,一個是CheckedException。RuntimeException 如 : NullPointerException 、 ClassCastException ;一個是檢查異常CheckedException,如 I/O 錯誤導致的 IOException、SQLException。 RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那么一定是程序員的錯誤.
檢查異常 CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強制程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一般包括幾個方面:
1. 試圖在文件尾部讀取數據
2. 試圖打開一個錯誤格式的 URL
3. 試圖根據給定的字符串查找 class 對象,而這個字符串表示的類并不存在
3. 異常的處理方式
遇到問題不進行具體處理,而是繼續拋給調用者 (throw,throws)
拋出異常有三種形式,一是 throw,一個 throws,還有一種系統自動拋異常。
try catch 捕獲異常針對性處理方式
4. Throw 和 throws 的區別:
位置不同
1. throws 用在函數上,后面跟的是異常類,可以跟多個;而 throw 用在函數內,后面跟的是異常對象。
功能不同:
2. throws 用來聲明異常,讓調用者只知道該功能可能出現的問題,可以給出預先的處理方式;throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,并將具體的問題對象拋給調用者。也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。
3. throws 表示出現異常的一種可能性,并不一定會發生這些異常;throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。
4. 兩者都是消極處理異常的方式,只是拋出或者可能拋出異常,但是不會由函數去處理異常,真正的處理異常由函數的上層調用處理。
二. JAVA 反射
1. 動態語言
動態語言,是指程序在運行時可以改變其結構:新的函數可以引進,已有的函數可以被刪除等結構上的變化。比如常見的 JavaScript 就是動態語言,除此之外 Ruby,Python 等也屬于動態語言,而 C、C++則不屬于動態語言。從反射角度說 JAVA 屬于半動態語言。
2. 反射機制概念 (運行狀態中知道類所有的屬性和方法)
在 Java 中的反射機制是指在運行狀態中,對于任意一個類都能夠知道這個類所有的屬性和方法;并且對于任意一個對象,都能夠調用它的任意一個方法;這種動態獲取信息以及動態調用對象方法的功能成為 Java 語言的反射機制。
3. 反射的應用場合
編譯時類型和運行時類型
在 Java 程序中許多對象在運行是都會出現兩種類型:編譯時類型和運行時類型。 編譯時的類型由聲明對象時實用的類型來決定,運行時的類型由實際賦值給對象的類型決定 。如:
Person p=new Student();其中編譯時類型為 Person,運行時類型為 Student。
的編譯時類型無法獲取具體方法
程序在運行時還可能接收到外部傳入的對象,該對象的編譯時類型為 Object,但是程序有需要調用該對象的運行時類型的方法。為了解決這些問題,程序需要在運行時發現對象和類的真實信息。然而,如果編譯時根本無法預知該對象和類屬于哪些類,程序只能依靠運行時信息來發現該對象和類的真實信息,此時就必須使用到反射了。
4. Java 反射 API
反射 API 用來生成 JVM 中的類、接口或則對象的信息。
1. Class 類:反射的核心類,可以獲取類的屬性,方法等信息。
2. Field 類:Java.lang.reflec 包中的類,表示類的成員變量,可以用來獲取和設置類之中的屬性值。
3. Method 類: Java.lang.reflec 包中的類,表示類的方法,它可以用來獲取類中的方法信息或者執行方法。
4. Constructor 類: Java.lang.reflec 包中的類,表示類的構造方法。
5. 反射使用步驟(獲取 Class 對象、調用對象方法)
1. 獲取想要操作的類的 Class 對象,他是反射的核心,通過 Class 對象我們可以任意調用類的方法。
2. 調用 Class 類中的方法,既就是反射的使用階段。
3. 使用反射 API 來操作這些信息。
6. 獲取 Class 對象的 3 種方法
調用某個對象的 getClass()方法
Person p=new Person();
Class clazz=p.getClass();
調用某個類的 class 屬性來獲取該類對應的 Class 對象
Class clazz=Person.class;
使用 Class 類中的 forName()靜態方法(最安全/性能最好)
Class clazz=Class.forName("類的全路徑"); (最常用)
當我們獲得了想要操作的類的 Class 對象后,可以通過 Class 類中的方法獲取并查看該類中的方法和屬性。
7. 創建對象的兩種方法
Class 對象的 newInstance()
1. 使用 Class 對象的 newInstance()方法來創建該 Class 對象對應類的實例,但是這種方法要求該 Class 對象對應的類有默認的空構造器。
調用 Constructor 對象的 newInstance()
2. 先使用 Class 對象獲取指定的 Constructor 對象,再調用 Constructor 對象的 newInstance()方法來創建 Class 對象對應類的實例,通過這種方法可以選定構造方法創建實例。
到此,相信大家對“JAVA異常分類及處理的方法”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
文章題目:JAVA異常分類及處理的方法
地址分享:http://www.2m8n56k.cn/article6/giocog.html
成都網站建設公司_創新互聯,為您提供移動網站建設、標簽優化、品牌網站設計、響應式網站、網站設計公司、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯