java異常類定義
❶ 常見的java異常有哪些都是什麼意思
1、ArithmeticException - 算術運算中,被0除或模除。
2、 - 數組越界訪問。
3、ArrayStoreException - 數據存儲異常,寫數組操作時,對象或數據類型不兼容。
4、ClassCastException - 類型轉換異常。
5、IllegalArgumentException - 方法的參數無效。
6、IllegalThreadStateException - 試圖非法改變線程狀態,比方說試圖啟動一已經運行的線程。
7、NullPointerException - 試圖訪問一空對象的變數、方法或空數組的元素
8、NumberFormatException - 數據格式異常,試圖把一字元串非法轉換成數值(或相反)。
9、SecurityException - 如果Applet試圖執行一被WWW瀏覽器安全設置所禁止的操作。
10、 - 如改變了某一類定義,卻沒有重新編譯其他引用了這個類的對象。如某一成員變數的聲明被從靜態改變為非靜態,但其他引用了這個變數的類卻沒有重新編譯,或者相反。
11、OutOfMemoryException - 內存不足,通常發生於創建對象之時。
12、NoClassDefFoundException - JAVA運行時系統找不到所引用的類。
13、IncompatibleTypeException - 試圖實例化一個介面,Java運行時系統將拋出這個異常。
14、UnsatisfiedLinkException - 如果所需調用的方法是C函數,但Java運行時系統卻無法連接這個函數。
15、InternalException - 系統內部故障所導致的異常情況,可能是因為Java運行時系統本身的原因。如果發現一可重現的InternalException,可以直接給Sun公司發電郵[email protected]。
❷ 如何編寫java中的自定義異常類
編寫自定義異常類實際上是繼承一個API標准異常類,用新定義的異常處理信息覆蓋原有信息的過程。常用的編寫自定義異常類的模式如下:
public class CustomException extends Exception { //或者繼承任何標准異常類
public CustomException() {} //用來創建無參數對象
public CustomException(String message) { //用來創建指定參數對象
super(message); //調用超類構造器
}
}
當然也可選用Throwable作為超類。其中無參數構造器為創建預設參數對象提供了方便。第二個構造器將在創建這個異常對象時提供描述這個異常信息的字元串,通過調用超類構造器向上傳遞給超類,對超類中的toString()方法中返回的原有信息進行覆蓋。
來討論一個具體例子。假設程序中需要驗證用戶輸入的表示年齡的數據必須是正整數值。我們可以按照以上模式編寫這個自定義異常類如下:
public class NegativeAgeException extends Exception {
//或者:extends Throwable
public NegativeAgeException() {}
public NegativeAgeException(String message) {
super(message);
}
}
下面是應用這個自定義異常類的例子:
try{
String ageString = JOptionPane.showInputDialog("Enter your age: ");
if (Integer.parseInt(ageString) < 0)
throw new NegativeAgeException("Please enter a positive age");
else
JOptionPane.showMessageDialog(null, ageString, "Age", 1);
}
catch(NegativeAgeException e){
System.out.println(e);
}
❸ java中運行時異常和非運行時異常的定義及其異同是什麼
這個網路上找找很多的,主要區別在於非運行時異常必須在代碼中顯示的聲明捕獲也就是放在try{}catch(){}塊中,或者在方法上申明throws 來拋出異常,
運行時異常不需要特意的申明,一般運行時異常都是虛擬機出現問題了才會報,比如你寫個死循環導致內存不足什麼的
❹ java自定義異常類問題
異常類的理解,個人看法
是不是說輸出異常的信息啊,在自定義類中輸出異常的信息
然後在程序中當判斷到輸入的數據是小於0,調用小於0的異常類里的輸出信息
大於100,就調用大於100的異常類里的輸出信息
❺ java自定義異常類都有什麼
public void MyException extends Exception{x0dx0apublic MyExceprion(){x0dx0aSystem.out.println("自定義異常");x0dx0a}x0dx0a}x0dx0apublic class Exam{x0dx0apublic static void mul() throws MyException{x0dx0aif(自己寫條件){x0dx0athrow new MyException();x0dx0a}x0dx0a}x0dx0a}x0dx0ax0dx0a這個應該能看懂吧,我只是寫了個結構沒寫完整程序的,你看懂這個就行,定義一個自定義異常,然後在你需要的地方拋出異常,在主方法中調用方法的時候達到一定條件就會拋出異常
❻ 解答一下有關JAVA異常類的問題
問題(1)可以改為Exception
問題(2)示情況而定是否可以改為IOException
原因,原語句中的try...catch..的語義是在try裡面的兩行語句中捕獲可能拋出的DangerException異常並加以處理,
(1). Exception是DangerException的父類,替換後語義變為了在try裡面的兩行語句中捕獲可能拋出的Exception異常並加以處理,語義是正確的;
(2). IOException不確定是不是DangerException的父類,替換後語義變為了在try裡面的兩行語句中捕獲可能拋出的IOException異常並加以處理,語義不一定正確,如果IOException是DangerException的父類,就是正確的,否則是錯誤的(在try裡面沒有IOException的類型可能被拋出),在編譯時會報錯(Exception 'java.io.IOException' is never thrown in the corresponding try block)
❼ java自定義異常類
public void MyException extends Exception{
public MyExceprion(){
System.out.println("自定義異常");
}
}
public class Exam{
public static void mul() throws MyException{
if(自己寫條件){
throw new MyException();
}
}
}
這個應該能看懂吧,我只是寫了個結構沒寫完整程序的,你看懂這個就行,定義一個自定義異常,然後在你需要的地方拋出異常,在主方法中調用方法的時候達到一定條件就會拋出異常
❽ 常見JAVA運行時異常有哪些
1,java.lang.NullPointerException
這個異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。
2,java.lang.ClassNotFoundException
異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可
3,java.lang.
這個異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了.
4,java.lang.NoSuchMethodError
方法不存在錯誤。當應用試圖調用某類的某個方法,而該類的定義中沒有該方法的定義時拋出該錯誤。
5,java.lang.IndexOutOfBoundsException
索引越界異常。當訪問某個序列的索引值小於0或大於等於序列大小時,拋出該異常。
6,java.lang.NumberFormatException
數字格式異常。當試圖將一個String轉換為指定的數字類型,而該字元串確不滿足數字類型要求的格式時,拋出該異常。
7,java.sql.SQLException
Sql語句執行異常
8,java.io.IOException
輸入輸出異常
9,java.lang.IllegalArgumentException
方法參數錯誤
10java.lang.IllegalAccessException
無訪問許可權異常
(8)java異常類定義擴展閱讀:
Java技術應用領域:
1、Android應用
許多的Android應用都是Java程序員開發者開發。雖然Android運用了不同的JVM以及不同的封裝方式,但是代碼還是用Java語言所編寫。相當一部分的手機中都支持JAVA游戲,這就使很多非編程人員都認識了JAVA。
2、在金融業應用的伺服器程序
Java在金融服務業的應用非常廣泛,很多第三方交易系統、銀行、金融機構都選擇用Java開發,因為相對而言,Java較安全。大型跨國投資銀行用Java來編寫前台和後台的電子交易系統,結算和確認系統,數據處理項目以及其他項目。
3、網站
Java在電子商務領域以及網站開發領域占據了一定的席位。開發人員可以運用許多不同的框架來創建web項目,SpringMVC,Struts2.0以及frameworks。即使是簡單的servlet,jsp和以struts為基礎的網站在政府項目中也經常被用到。例如醫療救護、保險、教育、國防以及其他的不同部門網站都是以Java為基礎來開發的。
4、嵌入式領域
Java在嵌入式領域發展空間很大。在這個平台上,只需130KB就能夠使用Java技術(在智能卡或者感測器上)。
5、大數據技術
Hadoop以及其他大數據處理技術很多都是用Java,例如Apache的基於Java的HBase和Accumulo以及ElasticSearchas。
6、高頻交易的空間
Java平台提高了這個平台的特性和即使編譯,他同時也能夠像C++一樣傳遞數據。正是由於這個原因,Java成為的程序員編寫交易平台的語言,因為雖然性能不比C++,但開發人員可以避開安全性,可移植性和可維護性等問題。
7、科學應用
Java在科學應用中是很好選擇,包括自然語言處理。最主要的原因是因為Java比C++或者其他語言相對其安全性、便攜性、可維護性以及其他高級語言的並發性更好。
❾ Java異常的含義
異常就是一種類是與錯誤的東西
異常機制是指當程序出現錯誤後,程序如何處理。具體來說,異常機制提供了程序退出的安全通道。當出現錯誤後,程序執行的流程發生改變,程序的控制權轉移到異常處理器。
❿ java異常分類
一、概念
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下
會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用
這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。
二、異常分類
Throwable 是 Java 語言中所有錯誤或異常的超類,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。
實例分為 Error 和 Exception 兩種。
2.1、Error
Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果
出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。
2.2、Exception
Exception 又有兩個分支 , 一個是運行時異常 RuntimeException , 一 個是檢查異常 CheckedException。
RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 錯誤導致的 IOException、SQLException。
RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那麼一
定是程序員代碼書寫導致的錯誤.
CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強
製程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一
般包括幾個方面:
試圖在文件尾部讀取數據
試圖打開一個錯誤格式的 URL
試圖根據給定的字元串查找 class 對象,而這個字元串表示的類並不存在
三、異常的處理方式
3.1、不處理
遇到異常問題不進行具體處理,而是繼續拋給調用者 (throw,throws)
拋出異常有三種形式,一是 throw,再就是 throws,還有一種系統自動拋異常。
public static void main(String[] args) {
String s = "abc";
if(s.equals("abc")) {
/** 手動拋出一個數字格式化異常 **/
throw new NumberFormatException();
} else {
System.out.println(s);
}
}
int div(int a,int b) throws Exception{
return a/b;
}
3.2、處理
try catch 捕獲異常針對性處理方式
四、Throw 和 throws 的區別
throws 用在函數上,後面跟的是異常類,可以跟多個;
語法:(修飾符)(方法名)([參數列表])[throws(異常類)]{……}
public void doA(int a) throws Exception1,Exception3{……}
throw 用在函數內,後面跟的是異常對象。
throws E1,E2,E3隻是告訴程序這個方法可能會拋出這些異常,方法的調用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數體產生的。
throw則是明確了這個地方要拋出這個異常。
結合來看:
void doA(int a) throws IOException,{
try{
......
}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出錯了!");
}
if(a!=b)
throw new Exception3("自定義異常");
}
throws 用來聲明異常,讓調用者知道該功能可能會出現的問題(比如上方的 IO 異常),可以給出預先的處理方式;
throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,並將具體的問題對象拋給調用者。
也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。
概括:
throws 表示出現異常的一種可能性,並不一定會發生這些異常;
throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。
五、總結
了解 Exception、Error 兩種異常的區別,面試可能會問。
區分 throws、throw使用維度。