2012-09-25 2 views
0

Android의 매니페스트에서 패키지 버전을 해결해야합니다. 나는 주 활동에서 그것을 똑바로하고, 그것이 틀린 지 모른다.중괄호 주위에 자바에서 try/catch 문이 필요합니까? 정말 이상한 물건들

지금 작동하는지 테스트 할 수 없습니다. 다양한 이유로 이클립스를 실행하고 있지만 수일 내에는 가능하지 않지만 실제로는 마음이 아플 것 같습니다.

{ try { 
    String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; 
} catch (NameNotFoundException e) { 
    Log.e("tag", e.getMessage()); 
} } 

는 전에 전체 문 뒤에 괄호를 알 수 있습니까? 내가 그들을 삭제하면, Eclipse는 {그 뒤에 오는 방법 또는 문에서 선행 활동 구멍에

및 유사한 물건 ", {이 토큰 후 예상"

"토큰에 구문 오류"를 말할 것이다.

나는 그것이 내가 할 수있는 일이기 때문에 그것을 위해 인터넷 검색, 필요하고 그들에 대해 아무것도 찾을 수 없습니다. 자바 자습서, 샘플 철자 catch없이 잡으려고. 내가 아주 어리 석거나 뭔가 정상적인 행동을하고 있고 코드 은 내가 돌아 왔을 때 실행해야합니까?

이 질문에 대한 다시 미안하지만, 난 그냥 필요했습니다. 사전에

감사합니다.

+2

둘러 볼 코드를 더 게시 할 수 있습니까? 이 try/catch 블록은 어디에 있습니까? –

+1

컨텍스트를 추가 할 수 있습니까? 시도 전에 무엇이 오나요? 이것이 함수의 본문이라면 중괄호가 필요합니다. 그러나 이것은 함수의 몸체의 일부일뿐입니다. – Herms

+1

코드 위치는 어디입니까? 아마도 당신은 방법 안에 있지 않습니까? – SJuan76

답변

3

아마도이 코드는 모든 메서드 밖에있을 것입니다. 중괄호를 사용하여 Java는이를 인스턴스 이니셜 라이저 블록으로 처리합니다. 중괄호가 없으면 불법입니다.

그 코드 잘못 또 다른 것은

당신이 변수 version를 초기화하고 versiontry 블록에 지역이기 때문에 즉시 정보를 잃을 것입니다. 변수는 블록 외부에서 선언되어야합니다.

+0

그래서, 방법을 만들어야하나요? 와아, 나는 무엇이든 컴파일 할 수 없을 때, 더 많은 것을 배울 필요가있다. – emha

+0

버전 문자열에 관한 내용입니다. 공개 String 버전을 추가해야합니다. – emha

+0

이것이 액티비티에 있다면, 당신은 'onCreate' 메소드를 가져야합니다. 'version'을 액티비티 서브 클래스의 필드로 선언하고'try/catch' 블록을'onCreate'로 옮기십시오. –

2

나는이 try 블록이 바로 코드에서 class { 안에 같아요.

그렇다면 자바는 instance initialize 블록으로 처리되기 때문에, 당신이 그들을 필요합니다.

추가 정보가 질문에 추가 된 후 예, 이것은 초기화 블록이 아니어야하며 메소드 내에 포장해야합니다.

+0

Q : Java는 전체 try/catch 문에서 중괄호를 필요로합니까? A : 아니오, 물론 아닙니다;). OP가 이상한 일을하고 있습니다. "수업 시간에 바로 시도해보십시오."좋은 추측이지만, 나는 추측하고 싶지 않습니다.OP는 * 시도하기 전에 * 오는 것을 보여 주어야합니다. IMHO ... – paulsm4

관련 문제