java如何處理異常
⑴ java中處理異常(try catch)的快捷鍵是什麼
您好,提問者:
在Eclipse跟MyEclipse中輸入try同時按住Alt+/就出來了。
⑵ java中 方法中拋出異常處理方法
Java語言提供兩種異常處理機制:捕獲異常和聲明拋棄異常。
1、捕獲異常:
(1)在Java程序運行過程中系統得到一個異常對象是,它將會沿著方法的調用棧逐層回溯,尋找處理這一異常的代碼。
(2)找到能夠處理這種類型異常的方法後,運行時系統把當前異常交給這個方法處理;如果找不到可以捕獲異常的方法,則運行時系統將終止,相應的Java程序也將退出。
(3)捕獲異常是通過try-catch-finally語句實現的。語法為:
try{
...
}catch(ExceptionName1 e){
...
}catch(ExceptionName2 e){
...
}
...
}finally{
...
}
2、聲明拋棄異常:
(1)當Java程序運行時系統得到一個異常對象時,如果一個方法並不知道如何處理所出現的異常,則可在方法聲明時,聲明拋棄異常。
(2)聲明拋棄異常是在一個方法聲明中的throws子句中指明的。如:
public int read() throws IOException{
...
}
其中throws IOException就是聲明拋棄異常,throws後可以跟多個異常類型。
(2)java如何處理異常擴展閱讀:
程序設計語言的異常機制:
1、多數語言的異常機制的語法是類似的:用throw或raise拋出一個異常對象(Java或C++等)或一個特殊可擴展的枚舉類型的值(如Ada語言);
2、異常處理代碼的作用范圍用標記子句(try或begin開始的語言作用域)標示其起始,以第一個異常處理子句(catch, except, resuce等)標示其結束;可連續出現若干個異常處理子句,每個處理特定類型的異常。
3、某些語言允許else子句,用於無異常出現的情況。更多見的是finally, ensure子句,無論是否出現異常它都將執行,用於釋放異常處理所需的一些資源。
(1)C++異常處理是資源獲取即初始化(Resource-Acquisition-Is-Initialization)的基礎。
(2)C語言一般認為是不支持異常處理的。Perl語言可選擇支持結構化異常處理(structured exception handling)。
(3)Python語言對異常處理機制是非常普遍深入的,所以想寫出不含try, except的程序非常困難。
參考資料來源:
網路-異常處理
⑶ java拋出異常在哪裡處理
如果不拋出異常則是在catch塊里,拋出則由調用方法的類處理。
為了避免調用的人不知道有異常,才拋出異常的,所以是誰掉用的久在哪裡處理。說的對嗎
對.
1、throws關鍵字通常被應用在聲明方法時,用來指定可能拋出的異常。多個異常可以使用逗號隔開。當在主函數中調用該方法時,如果發生異常,就會將異常拋給指定異常對象。如下面例子所示:
public class Shoot { 創建類
static void pop() throws NegativeArraySizeException {
//定義方法並拋出NegativeArraySizeException異常
int [] arr = new int[-3];//創建數組
}
public static void main(String[] args) {//主方法
try {
pop(); //調用pop()方法
} catch (NegativeArraySizeException e) {
System.out.println("pop()方法拋出的異常");//輸出異常信息
}
}
}
2、throw關鍵字通常用在方法體中,並且拋出一個異常對象。程序在執行到throw語句時立即停止,它後面的語句都不執行。通過throw拋出異常後,如果想在上一級代碼中來捕獲並處理異常,則需要在拋出異常的方法中使用throws關鍵字在方法聲明中指明要跑出的異常;如果要捕捉throw拋出的異常,則必須使用try—catch語句。舉例如下:
class MyException extends Exception { //創建自定義異常類
String message; //定義String類型變數
public MyException(String ErrorMessagr) { //父類方法
message = ErrorMessagr;
}
public String getMessage(){ //覆蓋getMessage()方法
return message;
}
}
public class Captor { //創建類
static int quotient(int x,int y) throws MyException{//定義方法拋出異常
if(y < 0){ //判斷參數是否小於0
throw new MyException("除數不能是負數");//異常信息
}
return x/y;//返回值
}
public static void main(String args[]){ //主方法
try{ //try語句包含可能發生異常的語句
int result = quotient(3,-1);//調用方法quotient()
}catch (MyException e) { //處理自定義異常
System.out.println(e.getMessage()); //輸出異常信息
}
catch (ArithmeticException e) {
//處理ArithmeticException異常
System.out.println("除數不能為0");//輸出提示信息
}
catch (Exception e) { //處理其他異常
System.out.println("程序發生了其他的異常");
//輸出提示信息
}
}
}
⑷ java中如何處理多種異常
publicclassTryCatchTest3
{
publicvoidmethod()
{
System.out.println("調用類中的方法");
}
publicstaticvoidmain(String[]args)
{
TryCatchTest3txt=null;
int[]is=newint[3];
try
{
txt.method();
is[3]=5;
}
catch(NullPointerExceptione)
{
System.out.println("發生空指針異常");
}
catch()
{
System.out.println("發生數組越界異常");
}
}
}
給你個例子。
⑸ Java對異常如何進行判斷和處理
做好事物管理,違反了就全部回退。最好在插入前自己判斷下有沒有重復主鍵,有就不去連接資料庫插入數據了,直接在那將異常拋到前端
⑹ java中哪些方法必須處理異常
可以選擇三種方法來進行異常處理
1對代碼塊用try..catch進行異常捕獲處理;
2在 該代碼的方法體外用throws進行拋出聲明,告知此方法的調用者這段代碼可能會出現這些異常,你需要謹慎處理。此時有兩種情況:
如果聲明拋出的異常是非運行時異常,此方法的調用者必須顯示地用try..catch塊進行捕獲或者繼續向上層拋出異常。
如果聲明拋出的異常是運行時異常,此方法的調用者可以選擇地進行異常捕獲處理。
3在代碼塊用throw手動拋出一個異常對象,此時也有兩種情況,跟2)中的類似:
如果拋出的異常對象是非運行時異常,此方法的調用者必須顯示地用try..catch塊進行捕獲或者繼續向上層拋出異常。
⑺ java怎麼處理異常讓程序繼續執行
把能出現異常的代碼放到 try... catch... 中進行異常捕捉處理,這樣就能使程序繼續進行,不會因為異常造成程度中斷
⑻ JAVA如何拋出異常
在方法中throw
⑼ 如何處理 Java 中出現的異常
1. java.lang.nullpointerexception
這個異常大家肯定都經常遇到,異常的解釋是"程序遇上了空指針",簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)
2. java.lang.classnotfoundexception
這個異常是很多原本在jb等開發環境中開發的程序員,把jb下的程序包放在wtk下編譯經常出現的問題,異常的解釋是"指定的類不存在",這里主要考慮一下類的名稱和路徑是否正確即可,如果是在jb下做的程序包,一般都是默認加上package的,所以轉到wtk下後要注意把package的路徑加上。
3. java.lang.arithmeticexception
這個異常的解釋是"數學運算異常",比如程序中出現了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數學運算的地方,公式是不是有不妥了。
4. java.lang.
這個異常相信很多朋友也經常遇到過,異常的解釋是"數組下標越界",現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的范圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候,最好先查看一下數組的length,以免出現這個異常。
5. java.lang.illegalargumentexception
這個異常的解釋是"方法的參數錯誤",很多j2me的類庫中的方法在一些情況下都會引發這樣的錯誤,比如音量調節方法中的音量參數如果寫成負數就會出現這個異常,再比如g.setcolor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。
6. java.lang.illegalaccessexception
這個異常的解釋是"沒有訪問許可權",當應用程序要調用一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程序中用了package的情況下要注意這個異常。
其他還有很多異常,我就不一一列舉了,我要說明的是,一個合格的程序員,需要對程序中常見的問題有相當的了解和相應的解決辦法,否則僅僅停留在寫程序而不會改程序的話,會極大影響到自己的開發的。關於異常的全部說明,在api里都可以查閱。
算術異常類:ArithmeticExecption
空指針異常類:NullPointerException
類型強制轉換異常:ClassCastException
數組負下標異常:NegativeArrayException
數組下標越界異常:
違背安全原則異常:SecturityException
文件已結束異常:EOFException
文件未找到異常:FileNotFoundException
字元串轉換為數字異常:NumberFormatException
操作資料庫異常:SQLException
輸入輸出異常:IOException
方法未找到異常:NoSuchMethodException
java.lang.AbstractMethodError
抽象方法錯誤。當應用試圖調用抽象方法時拋出。
java.lang.AssertionError
斷言錯。用來指示一個斷言失敗的情況。
java.lang.ClassCircularityError