2014-12-26 1 views
0

국가를 표시하고 있으며 코드는 Locale.class입니다.잡을 수없는 경우 예외 처리는 어떻게됩니까?

가 난 그냥 내 수업

String[] locales = Locale.getISOCountries(); 

    for (String countryCode : locales) { 

     Locale obj = new Locale("", countryCode); //NullPointerException - thrown if either argument is null. 

     System.out.println("Country Code = " + obj.getCountry() 
       + ", Country Name : " + obj.getDisplayCountry()); 

    } 

에 잡기 아니에요 나는이 방법을 사용하는 알고있는 follwing을 코드

public Locale(String language, String country, String variant) { 
    if (language== null || country == null || variant == null) { 
     throw new NullPointerException(); 
    } 
    baseLocale = BaseLocale.getInstance(convertOldISOCodes(language), "", country, variant); 
    localeExtensions = getCompatibilityExtensions(language, "", country, variant); 
} 

에서 처리의 예외입니다 방법을 알고 싶어요 새 Thowable 개체를 던져 넣으려면 throws 및 새로 throw 된 개체를 구현 된 클래스에서 처리해야합니다.

나는 자바에서 예외 처리 기능을 갖춘 초보자입니다.

+0

새로운'NullPointerException' 인스턴스는'language == null || country == null || variant == null'이 만족됩니다. – nbro

+1

NullPointerException은 확인 된 예외가 아니므로 선언하거나 처리 할 필요가 없습니다. –

+0

질문에 대한 답변이 명확하지 않습니다. '나는 단지 새로운 NullPointerException()을 던지는 방법을 알고 싶다. 다음 코드에서'? – nbro

답변

4

NullPointerException Javadoc 당, RuntimeException까지 확장됩니다. 그리고 RuntimeException Javadoc을 당

RuntimeException와 그 서브 클래스는 되지 않은 예외가 있습니다. 메소드 또는 생성자의 실행에 의해 throw 될 수 있고 메소드 또는 생성자 경계 바깥으로 전파 될 수있는 경우 검사되지 않은 예외는 메소드 또는 생성자의 throws 절에서 선언 할 필요가 없습니다.

예를 들어, NullPointerException을 트리거하면 JVM이 종료되고 스택 추적을 표시합니다.

+0

엄밀히 말하면, thread는 (디폴트의 캐치되지 않는 예외 핸들러로부터의) 스택 트레이스로 종료합니다. JVM 자체가 JVM의 마지막 비 데몬 스레드 인 경우에만 종료됩니다. –

관련 문제