23.04.27 JAVA

천용·2023년 4월 27일
0

JAVA

목록 보기
17/23

예외처리

1. NullPointerException

  • 가장 빈번하게 발생하는 실행 예외

  • 객체 참조가 없는 상태의 참조 변수로 객체 접근 연산자 도트를 사용할 경우 발생

    public class NullPointerExceptionExample {
        public static void main(String[] args) {
            String data = null;
            System.out.println(data.toString());
        }
    }

출력결과
Exception in thread "main" java.lang.NullPointerException
at NullPointerExceptionExample.main(NullPointerExceptionExample.java:6)

2. ArrayIndexOutOfBoundsException

  • 배열에서 인덱스 범위를 초과할 경우

    public class ArrayIndexOutofBoundsExceptionExample {
        public static void main(String[] args) {
            String data1 = args[0];
            String data2 = args[1];
    
            System.out.println("args[0]: " + data1);
            System.out.println("args[1]: " + data2);
        }
    }

출력결과
Exception in thread "main" java.lang.ArrayIndexOutofBoundsException: Index 0 out of bounds for length 0
at ArrayIndexOutofBoundsExceptionExample.main(ArrayIndexOutofBoundsExceptionExample.java:5)

예제를 실행할 때 매개변수를 전달하지 않으면 args 배열의 길이가 0이 되므로 args[0]와 args[1]과 같이 인덱스 범위를 벗어나는 접근이 발생

3. NumberFormatException

  • 문자열을 숫자로 변환하는 경우

    public class NumberFormatExceptionExample {
        public static void main(String[] args) {
            String data1 = "100";
            String data2 = "a100";
    
            int value1 = Integer.parseInt(data1);
            int value2 = Integer.parseInt(data2); //NumberFormatException 발생
    
            int result = value1 + value2;
            System.out.println(data1 + "+" + data2 + "=" + result);
        }
    }

출력결과
Exception in thread "main" java.lang.NumberFormatException: For input string: "a100"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at NumberFormatExceptionExample.main(NumberFormatExceptionExample.java:9)

profile
성장하는 개발자가 되자

0개의 댓글