2011-04-01 2 views
1

Integer.parseInt("5")Long.parseLong("5") 이클립스 표현식 창에 UnsupportedOperationException을 던지고 있습니다.parseInt 및 parseLong이 UnsupportedOperationException을 throw하는 중

public static long longTryParse(String text, long fallbackValue) { 
    try { 
    return Long.parseLong(text); 
    } catch (Exception e) { 
    return fallbackValue; // When stopping at a breakpoint here, Eclipse says that e is of type 'Exception'. Well, that's informative. 
    } 
} 
:이 또한 내가 런타임에 받고 있지만, 이클립스 새로운 것을하고있어 예외라고 생각

Eclipse Environment Screenshot

, 나는 디버그 세션 내에서 e의 유형을 찾는 방법을 잘 모르겠어요

그래서 ...

  1. 이 유효한 문이 있습니까?
  2. 그렇다면 예외가 발생하는 이유는 무엇입니까?
  3. (중요도는 더 낮음) 디버그 세션 중에 예외가 아닌 e가 UnsupportedOperationException 유형이라고 말하는 이유는 무엇입니까?

고마워요!

+0

다시 시작 일식으로 LVAL = 5

했다, 어쩌면 –

답변

2

유효한 진술입니까?

예 ... 일반적인 Java 프로그램의 컨텍스트에서 Java 표현식으로 사용됩니다.

이클립스 디버거의 표현식 평가자의 맥락에서 나는 확실하지 않다.

그렇다면 예외가 발생하는 이유는 무엇입니까?

잘 모르겠지만 디버거 자체와 관련이 있다고 생각됩니다.

  • 식 평가 기능을 잘못 사용하고있는 것 같습니다.

  • 다른 가능성이 이클립스 디버거 버그 또는 이클립스 디버거 및 JVM에서 디버그 에이전트간에 일치가 있다는 것이다. 내가 알고

한 것은 parseIntparseLong 방법 자체가 UnsupportedOperationException를 포기하지 않는다는 것입니다. (이론적으로는 확인되지 않은 예외이기 때문에 가능하다. 그러나이 두 가지 메소드의 소스 코드를 확인 했으므로 일반적인 방법으로 실행하면 코드가이를 수행 할 수 없다.)


Google 검색어 - "site : eclipse.org + UnsupportedOperationException JDI"- 이클립스 문제 데이터베이스 및 뉴스 그룹/메일 링리스트에 많은 조회수를 표시합니다. 문제는 대상 플랫폼에 대한 JDI/JNDI 구현이 완료되지 않았 음처럼 어떤 경우

, 그것은 보인다. 이것이 당신 문제일까요? 당신은

+0

감사를하는 데 도움이됩니다. 명확히하기 위해 표현식 창에서 예외가 발생하지만 런타임에는 문자열 텍스트 == "5"가됩니다. 나는 이클립스 클래식 3.6.2와 많은 안드로이드 API를 프로젝트에 사용하고있다. JVM 버전은 1.6.0_24입니다. –

1

java docs에 따르면 parseInt는 NumberFormatException 만 throw 할 수 있으며 이는 코드의 다른 위치에서 UnsupportedException이 발생 함을 의미합니다.

으로 parseInt는

public static int parseInt(String s) 
        throws NumberFormatException 

부호 첨부 10 진수의 정수로 해, 캐릭터 라인의 인수를 구문 분석합니다. 문자열의 문자는 모두 자릿수 여야합니다. 단, 문자의 첫 문자는 '-'('\ u002D' 결과 정수 값은 및 기수 10이 parseInt (java.lang.String) 메서드에 대한 인수로 지정된 경우와 마찬가지로 반환되는 입니다.

0

예외 유형을 표시하는 catch 블록에 sysout을 넣으십시오.

System.out.println(e); 

하고 또한 수레 쉬대로 던질 수있는 언급은 NumberFormatException이

0

내가 먼저 텍스트 변수를 분석하고 또 다른 긴 변수 및 인쇄에 넣어하려고한다고 생각합니다. 파싱이 완료되었는지 여부를 알 수 있습니다. 문제가있는 곳을 알게 될 것입니다.

0

예외 e의 선언 형이며, 그 일반적으로 자바의 관점에서 툴팁에 표시되는 내용입니다 ... 당신은 안드로이드 개발을하고 있습니다 언급. 이클립스가 더 이상 알려주지 않는다면, 먼저 자바 퍼스펙티브가 아닌 디버그 퍼스펙티브에 있어야한다.

난 당신 이클립스 툴팁의 구성에 문제가있는 것 같아요. 변수보기에서 예외에 대한 자세한 정보를 볼 수 있습니다 (열려 있지 않은 경우에는보기 /보기/변수 표시). 중단 점에서 중지를 디버깅 할 때

또한, 당신은 소스에 e을 표시하고 CTRL + I (검사)를 칠 수있다. e에 관해 더 많이 알려주는 팝업창이 나타납니다.

편집 : 이것은 e에 대해 더 자세히 알아보기위한 것입니다. 이전 포스터에 동의하는 경우 일반적으로 코드에서 UnsupportedOperationException을 얻을 수 없습니다. 문제는 디버깅이 제대로 작동하지 않는다는 것입니다.

1

나는 parseInt 또는 parseLong과 관련이 없다고 생각합니다. 예외가 "예외 처리 비동기 스레드 대기열"을 명확하게 지정합니다.

이전 버전의 Eclipse는 디버그 모드에서 사용될 때 유사한 예외를 발생시키는 것으로 알려져 있습니다. 그러나 나는 이것들이 새로운 버전에서 수정되었다고 생각한다.

나는 아무 잘못이 있다면 그것은 "NumberFormatException이"를 던진 것 때문에 코드가 괜찮다는 것을 알고있다.

나는 심지어 단지 예제를 시도했다.

Long lVal = Long.parseLong("5"); 
System.out.println("lVal = " + lVal); 

출력이 -clean 옵션을 예외없이

관련 문제