2013-02-09 4 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

답변

2

캐치 다른 예외는 다르게 처리하는 경우. 특별한 정수가없는

try{ 

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

대부분의 자바 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)"가 필요합니다. 에로스 데이터베이스에 로그인하고 싶습니다. 문자열이 아닌 예외의 정수가 필요합니다. – Ton

+0

@Ton Java의 예외는 오류에 대한 특수 번호를 저장하지 않습니다. 답변이 업데이트되었습니다. –

+0

확인. 감사. 나는 해결책이 없다고 생각한다. 정수로 오류 코드가없는 경우 문자열을 비교해야합니다. – Ton

0

당신이 잘못 갈 수 있는지 알고있는 경우에, 당신을 자신의 예외를 던져서 사용자 정의 텍스트를 추가 할 수 있습니다.

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

위의 사람과 같은 예외 유형을 정의 할 수도 있으며 발생한 예외 유형에 따라 다른 메시지를 표시 할 수 있습니다.