① java異常處理的分類有哪些
分三類,運行時異常,編譯時的異常,系統異常
② JAVA中的異常有幾類
Throwable包含了錯誤(Error)和異常(Excetion兩類)
Exception又包含了運行時異常(RuntimeException, 又叫非檢查異常)和非運行時異常(又叫檢查異常)
(1) Error是程序無法處理了, 如果OutOfMemoryError、OutOfMemoryError等等, 這些異常發生時, java虛擬機一般會終止線程 .
(2) 運行時異常都是RuntimeException類及其子類,如 NullPointerException、IndexOutOfBoundsException等, 這些異常是不檢查的異常, 是在程序運行的時候可能會發生的, 所以程序可以捕捉, 也可以不捕捉. 這些錯誤一般是由程序的邏輯錯誤引起的, 程序應該從邏輯角度去盡量避免.
(3) 檢查異常是運行時異常以外的異常, 也是Exception及其子類, 這些異常從程序的角度來說是必須經過捕捉檢查處理的, 否則不能通過編譯. 如IOException、SQLException等
兩者的區別
非檢查異常表示無法讓程序恢復運行的異常,導致這種異常的原因通常是由於執行了錯誤的操作。一旦出現錯誤,建議讓程序終止。
受檢查異常表示程序可以處理的異常。如果拋出異常的方法本身不處理或者不能處理它,那麼方法的調用者就必須去處理該異常,否則調用會出錯,連編譯也無法通過。
對於運行異常,建議不要用 try...catch...捕獲處理,應該在程序開發調試的過程中盡量的避免,當然有一些必須要處理的,自己知道了那個部分會出現異常,而這種異常你要把它處理的你想要的結果,例如:空值處理。
最後學習java,就去湖南卓越新騰
③ Java語言中常見的異常類型有哪些
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使用維度。
⑤ 常見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
無訪問許可權異常
(5)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.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理) 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:資料庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。
希望對您有所幫助!~
⑦ java語言中的異常有多少種,請詳細解答,並標明所對應的均為什麼類型
作為一隻敬業的程序員,就是不能接受我的編程出現bug!可見我們對bug是如此的深惡痛覺!它已成為我們職業生涯中的攔路虎,所以今天精心為大家總結一下Java中常見的幾種異常,望大家多多注意。
1、java.lang.NullPointerException(空指針異常)
調用了未經初始化的對象或者是不存在的對象。經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針, 即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化, 依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)。
2、 java.lang.ClassNotFoundException指定的類不存在
這里主要考慮一下類的名稱和路徑是否正確即可,通常都是程序試圖通過字元串來載入某個類時可能引發異常。比如:調用Class.forName();或者調用ClassLoad的finaSystemClass();或者LoadClass();
3、 java.lang.NumberFormatException字元串轉換為數字異常
當試圖將一個String轉換為指定的數字類型,而該字元串確不滿足數字類型要求的格式時,拋出該異常.如現在講字元型的數據「123456」轉換為數值型數據時,是允許的。但是如果字元型數據中包含了非數字型的字元,如123#56,此時轉換為數值型時就會出現異常。系統就會捕捉到這個異常,並進行處理。
4、java.lang.IndexOutOfBoundsException數組下標越界異常
查看調用的數組或者字元串的下標值是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候先查看一下數組的length,以免出現這個異常。
5、java.lang.IllegalArgumentException方法的參數錯誤
比如g.setColor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。
6、java.lang.IllegalAccessException沒有訪問許可權
當應用程序要調用一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程序中用了Package的情況下要注意這個異常。
7、java.lang.ArithmeticException數學運算異常
當算術運算中出現了除以零這樣的運算就會出這樣的異常。
8、java.lang.ClassCastException數據類型轉換異常
當試圖將對某個對象強制執行向下轉型,但該對象又不可轉換又不可轉換為其子類的實例時將引發該異常,如下列代碼。
Object obj = new Integer(0);
String str = obj;
9、 java.lang.FileNotFoundException文件未找到異常
當程序試圖打開一個不存在的文件進行讀寫時將會引發該異常。該異常由FileInputStream,FileOutputStream,RandomAccessFile的構造器聲明拋出,即使被操作的文件存在,但是由於某些原因不可訪問,比如打開一個只讀文件進行寫入,這些構造方法仍然會引發異常。
10、java.lang.ArrayStoreException數組存儲異常
當試圖將類型不兼容類型的對象存入一個Object[]數組時將引發異常,如
Object[] obj = new String[3]
obj[0] = new Integer(0);
11、java.lang.NoSuchMethodException方法不存在異常
當程序試圖通過反射來創建對象,訪問(修改或讀取)某個方法,但是該方法不存在就會引發異常。
12、 java.lang.NoSuchFiledException方法不存在異常
當程序試圖通過反射來創建對象,訪問(修改或讀取)某個filed,但是該filed不存在就會引發異常。
13、 java.lang.EOFException文件已結束異常
當程序在輸入的過程中遇到文件或流的結尾時,引發異常。因此該異常用於檢查是否達到文件或流的結尾
14、java.lang.InstantiationException實例化異常
當試圖通過Class的newInstance()方法創建某個類的實例,但程序無法通過該構造器來創建該對象時引發。Class對象表示一個抽象類,介面,數組類,基本類型 。該Class表示的類沒有對應的構造器。
15、java.lang.InterruptedException被中止異常
當某個線程處於長時間的等待、休眠或其他暫停狀態,而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常。
16、java.lang.CloneNotSupportedException 不支持克隆異常
當沒有實現Cloneable介面或者不支持克隆方法時,調用其clone()方法則拋出該異常。
17、java.lang.OutOfMemoryException 內存不足錯誤
當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤。
18、java.lang.NoClassDefFoundException 未找到類定義錯誤
當Java虛擬機或者類裝載器試圖實例化某個類,而找不到該類的定義時拋出該錯誤。
違背安全原則異常:SecturityException
操作資料庫異常:SQLException
輸入輸出異常:IOException
通信異常:SocketException
以上便是Java常見的幾種異常,希望各位同學都能編譯出完美的代碼,笑隱竹林中!編碼bug,江湖永無相見!
⑧ Java編程中常見異常有哪些
【導語】在進行Java編程的過程中,我們需要通過代碼編寫進行程序的運行,都是人工進行代碼編寫,所以會出現不少異常現象,這都是屬於正常現象,但是遇到這些異常現象是需要大家了解並學會處理的,今天就先給大家介紹一下Java編程中常見異常有哪些?一起來看看吧。
Java中常見的異常:
1、空指針異常類:NullPointerException
2、數據類型轉換異常:java.lang.ClassCastException
3、沒有訪問許可權:java.lang.IllegalAccessException
4、方法的參數錯誤:java.lang.IllegalArgumentException
5、數組下標越界異常:java.lang.IndexOutOfBoundsException
6、文件已結束異常:EOFException
7、文件未找到異常:FileNotFoundException
8、字元串轉換為數字異常:NumberFormatException
9、指定的類不存在: java.lang.ClassNotFoundException
10、實例化異常:java.lang.InstantiationException
Java中數據類型轉換異常如何理解?
數據類型轉換異常:java.lang.ClassCastException
當試圖將對某個對象強制執行向下轉型,但該對象又不可轉換又不可轉換為其子類的實例時將引發該異常,如下列代碼。
Object obj = new Integer(0);
String str = obj;
Java中空指針異常類是什麼意思?
空指針異常類:NullPointerException
調用了未經初始化的對象或者是不存在的對象。經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,
即把數組的初始化和數組元素的初始化混淆起來了。
數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化, 依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)。
Java常見異常有很多,以上這10種希望大家能夠提前了解,這樣能夠幫助大家在實際編寫代碼過程中,更快的進行一場處理,加油!
⑨ Java 常見的異常有哪幾種,有什麼區別
NullPointerException: 空指針異常。菜鳥編程經驗發現這個異常是經常會發生的,屬於運行時異常。
2.ClassCastException: 類型強制轉換異常。Java的一些語法知識不太熟悉的時候會發生的異常。
3.: 數組下標越界異常。特別常見的一個異常,粗心的程序員都會犯的錯誤。
4.ArithmeticException:算術運算異常。算術跟我水平差不多的你有沒有犯過類似的錯誤呢??
5.NumberFormatException: 數字格式異常。什麼是數字格式異常呢?一個例子說明一切。