Develop Study/Java
(24.05.13)[5주차] 런타임 이슈 by NumberFormatException 예외
5주차 Spring 강의가 진행이 되고 있는데, 관련 내용은 오늘 배운것 + 내일 마무리한 것과 정리해서
내일 한번에 정리를 할 수 있도록 할 것
처음 배우는 것이기 때문에 한번에 내일 정리할 수 있도록 할 것.
CODE KATA 정리
런타임 이슈
더보기
public class Main {
public static void main(String[] args) {
String t = "3141592";
String p = "271";
int answer = 0;
int pLenth = p.length();
char[] charArray = t.toCharArray();
for (int i = 0; i <= charArray.length - pLenth; i++) {
String unit = t.substring(i, i + pLenth);
System.out.println(unit);
if (Integer.parseInt(unit) <= Integer.parseInt(p)) {
answer++;
}
}
System.out.println(answer);
}
}
이슈
- 관련 알고리즘을 intellij 로 돌려서 정상적으로 작동했음에도 특정 테스트 변수에 대해서 런타임 에러가 발생
원인
- String 타입으로 입력되는 t와 p에 관해서 Integer.parseInt 로 변환을 할 때 그 범위가 Long이 될 가능성을 배제
- NumberFormatException 예외가 발생해서 Runtime Error가 프로그램 내에서 최종적으로 발생하게 되는것
해결
- String에서 정수 변환을 할 때, 당연히 Integer 로 생각을 했는데 그 습관을 버려야할 것.
- Long.parseLong으로 데이터 값을 크게 잡아주는 것도 필요함
저번주에도 했던 실수 이기 때문에 또 유의를 하기 위해서 다시 복습 차원에서 기록
Spring 주차가 시작이 되었기 때문에 관련 내용은 최대한 맥락을 가져가려고 노력하려고 함
내일부터 학습 관련 정리 + 개인 과제의 시작으로 이번주를 마무리 할듯!

'Develop Study > Java' 카테고리의 다른 글
| (24.06.03)[8주차] PriorityQueue (1) | 2024.06.03 |
|---|---|
| (24.05.20)[6주차] compare, compareTo 메서드 비교 & 사용자 정의 Comparator 활용 (0) | 2024.05.20 |
| (24.05.10)[5주차] n진수로 바꾸기 & StringBuffer (0) | 2024.05.10 |
| (24.05.08)[4주차] java.util.regex 패키지 정규식 확용 (0) | 2024.05.08 |
| (24.05.07)[4주차] 오버플로우 처리, Collections 클래스의 sort() 와 Comparator (0) | 2024.05.07 |