2013-02-09 43 views
0

有沒有辦法讓異常號碼更好地控制發生了什麼?例外號碼和字符串

例如:

try 
    { Do some work 
    } 
    catch(Exception e) 
    { if(e.**ExceptionNumber** == Value) 
      Toast("Show message"); 
     else 
      Toast("Error doing some work: " + e.toString());   
    } 
+0

你想達到什麼目的? – Sean 2013-02-09 09:10:02

回答

2

捕獲不同的例外,如果你想以不同的方式處理它們。

try{ 

}catch(IOException e1){ 
    //-- if io error-- 
}catch(FormatException e2){ 
    //--if format error-- 
}catch(Exception e3){ 
    //--any thing else -- 
} 

沒有特殊整數大多數Java API例外,他們有一個類型,消息和原因。

但是,你可以創建自己的類型的例外太多:

public class MyIntegerException extends Exception{ 
    private int num; 

    public int getInteger(){ 
    return num; 
    } 

    public MyIntegerException(int n, String msg){ 
    super(msg); 
    this.num = n; 
    } 
} 

投:

throw new MyIntegerException(1024,"This is a 1024 error"); 

陷阱:

catch(MyIntegerException e){ 
    int num = e.getInteger(); 
    //--do something with integer-- 
} 
+0

我只需要「catch(Exception e3)」。我想登錄一個erros數據庫。我需要一個整數的異常而不是一個字符串。 – Ton 2013-02-09 09:26:18

+0

@Ton Java的例外不會存儲錯誤的特殊數字。在答案中更新。 – 2013-02-09 09:36:11

+0

好的。謝謝。我想沒有解決辦法。如果沒有錯誤代碼作爲整數,我想我必須比較字符串。 – Ton 2013-02-09 12:45:22

0

,如果你知道什麼可以去錯了,你可以拋出你自己的例外,並添加自定義文本:

try{ 
    //code to execute 
    //in case of an error 
    throw new Exception("Your message here"); 
} 
catch (Exception e){ 
e.printStackTrace(); 
} 

您也可以定義自己的異常類型,就像上面說的人一樣,您可以根據發生的異常類型顯示不同的消息。