NumberFormatException 선택되지 않음입니다. 예외 parseXXX()에 의해 발생 포맷할 수 없는 경우의 방법 (변환) 문자열을 숫자로 .
NumberFormatException 많은 메서드/생성자가 던질 수 있습니다. java.lang 클래스에서 패키지. 다음은 그 중 일부입니다.
- public static int parseInt(String s)에서 NumberFormatException 발생
- 공개 정적 바이트 valueOf(String s)에서 NumberFormatException 발생
- 공개 정적 바이트 parseByte(String s)에서 NumberFormatException 발생
- 공개 정적 바이트 parseByte(String s, int radix)에서 NumberFormatException 발생
- public Integer(String s)에서 NumberFormatException 발생
- public Byte(String s)에서 NumberFormatException 발생
NumberFormatException을 던질 수 있는 각 메소드에 대해 정의된 상황이 있습니다. . 예를 들어, public static int parseInt(String s)는 NumberFormatException을 발생시킵니다. 언제
- 문자열 s가 null이거나 s의 길이가 0입니다.
- 문자열에 숫자가 아닌 문자가 포함된 경우
- String 값이 정수를 나타내지 않습니다.
예시 1
public class NumberFormatExceptionTest { public static void main(String[] args){ int x = Integer.parseInt("30k"); System.out.println(x); } }
출력
Exception in thread "main" java.lang.NumberFormatException: For input string: "30k" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at NumberFormatExceptionTest.main(NumberFormatExceptionTest.java:3)
NumberFormatException 처리 방법
NumberFormatException 을 처리할 수 있습니다. 두 가지 방법으로
- NumberFormatException을 유발할 수 있는 코드 주변에 try 및 catch 블록 사용 .
- ) 예외를 처리하는 또 다른 방법은 throws를 사용하는 것입니다. 키워드.
예시 2
public class NumberFormatExceptionHandlingTest { public static void main(String[] args) { try { new NumberFormatExceptionHandlingTest().intParsingMethod(); } catch (NumberFormatException e) { System.out.println("We can catch the NumberFormatException"); } } public void intParsingMethod() throws NumberFormatException{ int x = Integer.parseInt("30k"); System.out.println(x); } }
위의 예에서 intParsingMethod() 메서드는 Integer.parseInt("30k") 에 의해 throw된 예외 개체를 throw합니다. main() 호출 메소드에 이 경우 방법입니다.
출력
We can catch the NumberFormatException