2014-02-24 5 views
1

내 문제는 .class 파일을 디 컴파일하면 catch 블록에 오류가 표시되고 이상한 결과가 내 코드에 반영된다는 것입니다..class 파일을 디 컴파일 한 후 구문 오류를 해결하는 방법

public void f() { 
    try { 
     if (this.u == 0) { 
      this.h(); 
     } else { 
      this.i(); 
     } 

    } catch (Exception var2) { 
     throw var2;  // exception occur here 
    } 
} 
+0

throw 대신 printStackTrace 메서드를 사용하는 것이 좋습니다. –

+0

@JiteshUpadhyay 실제로 catch 블록에 구문 오류가 있으므로 catch 블록 아래에서이 throw 예외에 대한 try catch 블록을 추가하는 것이 좋습니다. 왜 Decompiler가이 구문 오류를 보여 주는지 설명해 주시겠습니까? –

+1

@IrshadKhan - catch 블록의 닫는 중괄호는 어디에 있습니까? .. 당신의 catch 블록 o 함수에 닫는 중괄호가 없습니다 .. – TheLostMind

답변

2

쓰기

public void f() throws Exception { 
      try { 
      if(u == 0) { 
       this.h(); 
      } else { 
       this.i(); 
      } 

      } catch (Exception var2) { 

       throw var2;  // exception occur here 


     } 
} 

하고이 함수를 호출하는 예외를 catch로이 기능을 사용하지 않음.

0

문제는 throw 문을 사용하는 것입니다. 는 함수 선언으로이

옵션 1

public void f() throws Exception 

추가 throw 문을 해결합니다.

옵션 2

try { 
    throw var2; // exception occur here 
} catch (Exception e) { 
    // do something 
} 

캐치이 던져 예외입니다.

-1

난 그냥 지금

throw new RuntimeException(); 

이 제대로 작동과 일치

throw var2; 

이하로 교체하고 난 내 컴파일 과정에 대해 "쉬운 자바 소스 변환기"디 컴파일러를 사용합니다.

모두에게 감사하십시오 !!!