搜尋
首頁Javajava教程Java分類異常問題講解
Java分類異常問題講解Jul 18, 2017 pm 05:50 PM
java分類例外

錯誤:error,通常不需要程式設計師管理,一般指記憶體不足等。
異常:exception

依照執行的時機分為:
執行階段異常:RuntimeException:執行的時候才會出現的例外。
非運行時異常:

依照是否安全分為:
已檢查異常:檔案開啟異常,檔案操作異常,資料庫操作異常等
未檢查異常:程式設計師沒有仔細去驗證,導致出現的異常,下標越界異常,空指標異常,型別轉換異常。


處理方式:
兩種方式:try這一類的關鍵字處理
throw和throws關鍵字處理

原則:下層應該會將例外狀況拋出,表層去轉換成業務語言提醒使用者。


專案中異常的處理應該是針對使用者的。
業務異常:業務中出現的異常。

自訂例外:封裝業務異常以及出現異常的位置和異常的原因。

Java Exception:

1、Error 
2、Runtime Exception 執行階段例外
3、Exception 
4、throw 使用者自訂例外

#異常類別分兩大類型:Error類別代表了編譯和系統的錯誤,不允許捕獲;Exception類別代表了標準Java庫方法所激發的異常。 Exception類別也包含執行異常類別Runtime_Exception和非運作異常類別Non_RuntimeException這兩個直接的子類別。

執行異常類別對應於編譯錯誤,它是指Java程式在執行時產生的由解釋器引發的各種異常。運行異常可能出現在任何地方,且出現頻率很高,因此為了避免巨大的系統資源開銷,編譯器不會對異常進行檢查。所以Java語言中的運行異常不一定被捕獲。出現運作錯誤往往表示程式碼有錯誤,如:算數異常(如被0除)、下標異常(如陣列越界)等。

非執行異常時Non_RuntimeException類別及其子類別的實例,又稱為可偵測異常。 Java編譯器利用分析方法或構造方法中可能產生的結果來偵測Java程式中是否含有偵測異常的處理程序,對於每個可能的可偵測異常,方法或構造方法的throws子句必須列出該異常對應的類。在Java的標準套件java.lang java.util 和 java.net 中定義的異常都是非運作異常。

 

算術異常類別:ArithmeticExecption

空指標例外類別:NullPointerException

類型強制轉換例外:ClassCastException

#陣列負下標異常:NegativeArrayException

數組下標越界異常:ArrayIndexOutOfBoundsException

違反安全原則例外:SecturityException

檔案已結束異常:EOFException

##檔案未找到檔案未找到檔案未找到檔案未找到例外:FileNotFoundException

字串轉換為數字異常:NumberFormatException

操作資料庫異常:SQLException

##輸入輸出例外:IOException


#方法找不到例外:NoSuchMethodException


java.lang.AbstractMethodError

抽象方法錯誤。當應用程式試圖呼叫抽象方法時拋出。

java.lang.AssertionError

斷言錯誤。用來指示一個斷言失敗的情況。

java.lang.ClassCircularityError

類別循環依賴錯誤。在初始化一個類別時,若偵測到類別之間循環依賴則拋出該異常。

java.lang.ClassFormatError

類別格式錯誤。當Java虛擬機器試圖從一個檔案中讀取Java類,而偵測到該檔案的內容不符合類別的有效格式時拋出。

java.lang.Error

錯誤。是所有錯誤的基類,用於標識嚴重的程式運行問題。這些問題通常描述一些不應被應用程式捕獲的反常情況。

java.lang.ExceptionInInitializerError

初始化程式錯誤。當執行一個類別的靜態初始化程序的過程中,發生了異常時拋出。靜態初始化程序是指直接包含於類別中的static語句段。

java.lang.IllegalAccessError

「違法存取錯誤。當一個應用程式試圖存取、修改某個類別的域(Field)或呼叫其方法,但是又違反域或方法的可見性聲明,則拋出該異常。

java.lang.IncompatibleClassChangeError

不相容的類別變更錯誤。當正在執行的方法所依賴的類別定義發生了不相容的改變時,拋出該異常。一般在修改了應用程式中的某些類別的聲明定義而沒有對整個應用重新編譯而直接運行的情況下,容易引發該錯誤。

java.lang.InstantiationError

實例化錯誤。當一個應用程式試圖透過Java的new運算子建構一個抽象類別或介面時拋出該例外.

java.lang.InternalError

內部錯誤。用來指示Java虛擬機器發生了內部錯誤。

java.lang.LinkageError

連結錯誤。這個錯誤及其所有子類指示某個類依賴於另外一些類,在該類編譯之後,被依賴的類改變了其類定義而沒有重新編譯所有的類,進而引發錯誤的情況。

java.lang.NoClassDefFoundError

未找到類別定義錯誤。當Java虛擬機器或類別裝載器試圖實例化某個類,而找不到該類別的定義時拋出該錯誤。

java.lang.NoSuchFieldError

域不存在錯誤。當應用程式試圖存取或修改某類別的某個域,而該類別的定義中沒有該域的定義時拋出該錯誤。

java.lang.NoSuchMethodError

方法不存在錯誤。當應用程式試圖呼叫某一類別的某個方法,而該類別的定義中沒有該方法的定義時拋出該錯誤。

java.lang.OutOfMemoryError

記憶體不足錯誤。當可用記憶體不足以讓Java虛擬機器分配給一個物件時拋出該錯誤。

java.lang.StackOverflowError

堆疊溢位錯誤。當一個應用遞歸呼叫的層次太深而導致堆疊溢位時拋出該錯誤。

java.lang.ThreadDeath

線程結束。當呼叫Thread類別的stop方法時拋出該錯誤,用於指示執行緒結束。

java.lang.UnknownError

未知錯誤。用來指示Java虛擬機器發生了未知嚴重錯誤的情況。

java.lang.UnsatisfiedLinkError

未滿足的連結錯誤。當Java虛擬機未找到某個類別的宣告為native方法的本機語言定義時拋出。

java.lang.UnsupportedClassVersionError

不支援的類別版本錯誤。當Java虛擬機試圖從讀取某個類別文件,但發現該文件的主、次版本號不被目前Java虛擬機支援的時候,拋出該錯誤。

java.lang.VerifyError

驗證錯誤。當驗證器偵測到某個類別檔案中存在內部不相容或安全問題時拋出該錯誤。

java.lang.VirtualMachineError

虛擬機器錯誤。用於指示虛擬機器被破壞或繼續執行操作所需的資源不足的情況。


java.lang.ArithmeticException

算術條件異常。譬如:整數除零等。

java.lang.ArrayIndexOutOfBoundsException

陣列索引越界異常。當數組的索引值為負數或大於等於數組大小時拋出。

java.lang.ArrayStoreException

陣列儲存異常。當向數組中存放非數組聲明類型物件時拋出。

java.lang.ClassCastException

類別造型異常。假設有類別A和B(A不是B的父類別或子類別),O是A的實例,那麼當強制將O建構為類別B的實例時拋出該異常。該異常經常被稱為強制類型轉換異常。

java.lang.ClassNotFoundException

找不到類別異常。當應用程式試圖根據字串形式的類別名稱構造類,而在遍歷CLASSPAH之後找不到對應名稱的class檔案時,拋出該異常。

java.lang.CloneNotSupportedException

不支援克隆異常。當沒有實作Cloneable介面或不支援克隆方法時,呼叫其clone()方法則拋出該異常。

java.lang.EnumConstantNotPresentException

枚舉常數不存在例外。當應用程式試圖透過名稱和枚舉類型存取一個枚舉對象,但該枚舉對象並不包含常數時,請拋出該異常。

java.lang.Exception

根異常。用來描述應用程式希望捕獲的情況。

java.lang.IllegalAccessException

違法的存取例外。當應用程式試圖透過反射方式建立某個類別的實例、存取該類別屬性、呼叫該類別方法,而當時又無法存取類別的、屬性的、方法的或建構方法的定義時拋出該異常。

java.lang.IllegalMonitorStateException

違法的監控狀態異常。當某個執行緒試圖等待一個自己並不擁有的物件(O)的監控器或通知其他執行緒等待該物件(O)的監控器時,拋出該異常。

java.lang.IllegalStateException

違法的狀態異常。當在Java環境和應用程式尚未處於某個方法的合法呼叫狀態,而呼叫了該方法時,拋出該異常。

java.lang.IllegalThreadStateException

違法的執行緒狀態異常。當縣城尚未處於某個方法的合法呼叫狀態,而呼叫了該方法時,拋出異常。

java.lang.IndexOutOfBoundsException

索引越界異常。當存取某個序列的索引值小於0或大於等於序列大小時,拋出該異常。

java.lang.InstantiationException

實例化異常。當試圖透過newInstance()方法建立某個類別的實例,而該類別是抽象類別或介面時,拋出該異常。

java.lang.InterruptedException

被中止異常。當某個執行緒處於長時間的等待、休眠或其他暫停狀態,而此時其他的執行緒透過Thread的interrupt方法終止該執行緒時拋出該例外。

java.lang.NegativeArraySizeException

陣列大小為負值異常。當使用負數大小值建立數組時拋出該異常。

java.lang.NoSuchFieldException

屬性不存在異常。當存取某個類別的不存在的屬性時拋出該異常。

java.lang.NoSuchMethodException

方法不存在異常。當存取某個類別的不存在的方法時拋出該異常。

java.lang.NullPointerException

空指標異常。當應用程式試圖在要求使用物件的地方使用了null時,拋出該異常。譬如:呼叫null物件的實例方法、存取null物件的屬性、計算null物件的長度、使用throw語句拋出null等等。

java.lang.NumberFormatException

數位格式異常。當試圖將一個String轉換為指定的數字類型,而該字串確不符合數字類型要求的格式時,請拋出該異常。

java.lang.RuntimeException

執行階段異常。是所有Java虛擬機器正常操作期間可以被拋出的異常的父類別。

java.lang.SecurityException

安全性異常。由安全管理器拋出,用於指示違反安全狀況的異常。

java.lang.StringIndexOutOfBoundsException

字串索引越界異常。當使用索引值存取某個字串中的字符,而該索引值小於0或大於等於序列大小時,請拋出該異常。

java.lang.TypeNotPresentException

類型不存在異常。當應用程式試圖以某個類型名稱的字串表達方式存取該類型,但根據給定的名稱找不到該類型是拋出該異常。此異常與ClassNotFoundException的差異在於該異常是unchecked(不被檢查)異常,而ClassNotFoundException是checked(被檢查)異常。

java.lang.UnsupportedOperationException

不支援的方法異常。指明請求的方法不被支持情況的異常。

異常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)

可能原因
action沒有再struts- config.xml 中定義,或沒有找到符合的action,例如在JSP檔案中使用


以上是Java分類異常問題講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java数据结构之AVL树详解Java数据结构之AVL树详解Jun 01, 2022 am 11:39 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

一文掌握Java8新特性Stream流的概念和使用一文掌握Java8新特性Stream流的概念和使用Jun 23, 2022 pm 12:03 PM

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中