메모장

[멘토씨리즈] 예외처리 본문

JAVA/[멘토씨리즈]

[멘토씨리즈] 예외처리

Itchild 2024. 4. 9. 13:21
728x90
반응형

 

  1. NullPointException

자바 프로그램에서 가장 빈번하게 발생하는 실행 예외 이다. 객체가 제대로 생성되지 않은 상태에서 사용할 경우 발생한다. 우리가 객체를 선언하면 인스턴스는 객체의 주소를 가지게 되고 , 그것을 통해 객체에 접근해 값을 가져온다.그런데 객체는 정의 되었는데 실제 메모리에 생성되지 않았을 경우 , 예외가 발생한다.

main()

String [] strArray = null; // 배열을 변수를 만들기만 하고 선언하지 않음

System.out.println("strArray[0] = " + strArray[0]); // 생성되지 않은 배열을 출력하려고 함 
    }
}
 

2. NumberFormatException

잘못된 문자열을 숫자로 형 변환 할때 발생된다. 숫자형태('111')의 문자열은 정수 타입으로 변환할 수 있으나 문자가 포함되거나 실수형태 ('11.11') 문자열은 변환 할 수 없다.

(정수는 실수를 포함 하지 않기 때문에 소수점(.)을 문자로 인식한다.

 

3.ArrayIndexOutOfBoundsException

배열에서 인덱스 (index) 범위를 초과해 사용할때 발생

 


오류를 잡기 위해선 ,,,!

  • 예외를 처리하는 가장 기본 문법은 try-catch 문이다. 발생한 예외를 처리하기 위해서 우리는 try-catch구문을 사용하게 된다. 예외가 발생할 가능성이 있는 코드는 try{...} 안에 작성하고 catch 메서드는 시스템으로부터 넘어오는 예외 클래스를 받아서 처리한다.

 

예외 처리시에 Exception 클래스를 이용하면 모든 예외를 처리 할 수 있다. Exception은 모든 예외 클래스의 최상위 객체이기 때문에 catch에서 사용하면 모든 예외처리가 가능하다.

다중 catch 문으로 예외 별로 맞는 예외처리를 골라 프로그램을 구성하면서 발생하는 다양한 예외를 처리할 수 있다. 보다 안정적인 프로그래밍이 가능해진다.

 


finally

: finally 블록은 예외 발생 유무와 상관 없이 실행되는 구문 이며 생략할 수 있다. 예외처리를 할때 , 예외와 상관없이 반드시 처리해야 하는 구문들을 작성할 때 사용되며, 보통 외부 연동 이나 예외가 발생해도 정상종료 되어야 할 구문들에서 사용한다. catch 구문 다음에 finally 를 작성한다. 해당 구문 안에는 예외 처리와 상관없이 구동되어야하는 로직이 입력 된다.

 

 

728x90
반응형