2013-10-20 1 views
1

정적 블록은 검사 된 예외를 throw 할 수 없지만 검사 된 예외가 선택 취소되어 정적 블록에서 처리되는 두 가지 코드를 보았습니다. 그러한 예는 사전의 텍스트 파일을 읽는 것입니다. 우리는 사전의 절반 만 읽고 싶지 않고 그것을 잡는 대신 예외를 던질 수 있습니다. 하지만 내 질문은 - 그냥 해킹 또는 일반적으로 산업 따라 코딩 스타일을 따랐다는거야?정적 블록에서 검사되지 않은 예외로 검사를 전환하는 것이 표준/권장 관행입니까?

+1

도움이 되나요? - http://stackoverflow.com/questions/2070293/exception-in-static-initialization-block/2070409#2070409? –

답변

2

체크되지 않은 예외를 throw하는 결정을하지 않습니다 해킹, 당신이 가지고있는 유일한 선택입니다 - 클래스의 구현 세부 사항이기 때문에 클래스의 사용자가 처리 할 수없는 것. 즉, 정적 블록의 예외는 프로그래머가 자신의 시스템에서 클래스를 사용한 방식의 오류를 나타 내기 때문에 블록에 의해 내부적으로 처리되거나 검사되지 않은 예외로 throw되어 시스템을 모두 중지해야합니다 .

1

처리 할 수없는 경우 던져야합니다. 필요한 때에 사용됩니다.

1

는이 같은 의미 : 정적 블록에서 예외가 초기화 클래스의 실패를 나타냅니다

static{ 
    try{ 
     //do something that throws a checked exception 
     ... 

    }catch(Exception e){ 
     //this is an unchecked exception 
     throw new IllegalStateException("error initializing", e); 
    } 

} 
+0

이 또는 런타임 중 하나이지만 주요 질문은 -해야합니까? – JavaDeveloper

+0

당신이 초기화 할 때 체크 된 예외를 던지면 다른 방법은 없습니다. – dkatzel