| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 서비스레이어
- @RequestParam
- Java
- 어노테이션
- springmvc
- spring
- jointpoint
- frontController
- application.properties
- 스프링
- MVC
- 유효성검사
- .xml
- @RequestMapping
- c:if
- @
- @Valid
- 의존주입
- SpringBoot
- Model
- produces
- after-throwing
- AOP
- gradle
- PointCut
- @ResponseBody
- 생성자주입
- springjdbc
- 바인딩변수
- 비즈니스레이어
- Today
- Total
메모장
[멘토씨리즈] 예외처리 본문
- 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 를 작성한다. 해당 구문 안에는 예외 처리와 상관없이 구동되어야하는 로직이 입력 된다.
'JAVA > [멘토씨리즈]' 카테고리의 다른 글
| [멘토 씨리즈] 스레드 (0) | 2024.04.09 |
|---|---|
| [멘토씨리즈] 컬렉션 프레임 워크 (0) | 2024.04.09 |
| [멘토 씨리즈] 다형성과 타입변환 (0) | 2024.04.09 |
| [과제] 멘토씨리즈 문제풀이 3 (0) | 2024.04.09 |
| [멘토 씨리즈] 메서드 (1) | 2024.04.09 |