최코딩의 개발
일곱번 째, 예외처리란? 본문
728x90
개요: 필자가 예외처리 내용을 공부하기 위해 쓴 게시물이다.
위 개념을 알아보기 위해서는 먼저 오류(error)와 예외(exception)가 있다.
오류(error) - 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행중인 프로그램을 종료시키는 것으로
개발자가 미리 예측하여 처리할 수 없는것이 대부분이므로 막지를 못한다.
예외(exception) - 오류와 마찬가지로 실행중인 프로그램을 종료시키지만 개발자가 미리 예측하여 처리할 수 있다. 따라서 개발자는 이것을 이용해 코드의 흐름을 바꿀 수 있다.
예외처리 구문에는 try. catch. finally 구문이 있다.
try. catch. finally
간단하게 배열을 엮어 정리한 코드이다.
package exception;
public class ArrayExceptionTest {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
try { // 예외를 처리하길 원하는 실행 코드
for (int i = 0; i <= 4 ; i++) {
System.out.println(arr[i]);
}
} catch (ArrayIndexOutOfBoundsException e){//e
System.out.println(e); //e 예외가 발생할 경우 실행 될 코드
return; //finally 구문다음에 return이 출력 end는 출력안됨
} finally {//try가 수행되면 무조건 수행됨 , 맨마직막에 정리하는 구문
System.out.println("finally");
}
System.out.println("end");
}
}
다음과 같다.
Throw. Throws
throw - 강제로 예외발생시키기
throws - 예외를 회피하기
package exception;
public class IDFormatException extends Exception {
IDFormatException(String message) {
super(message);
}
}
package exception;
public class IDFormatTest {
String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId)throws IDFormatException{ //예외를 회피함으로써 main으로 미룸
if(userId==null){
throw new IDFormatException("아이디 널일수가 없어용"); //강제로 발생
}
else if(userId.length()<8 || userId.length()>20){
throw new IDFormatException("아이디 입력수 초과");
}
this.userId = userId;
}
public static void main(String[] args) {
IDFormatTest a= new IDFormatTest();
String name="chltmdgh522";
try{
a.setUserId(name);
}catch(IDFormatException e){
System.out.println(e);
}
System.out.println("end");
}
}
예외클래스 종류
가장 흔하다고 하니 알아두자!
느낀점: 장정 3일에 걸쳐 예외처리에 대해서 알아봤다. 솔직히 블로그에서는 내용이 적어보일지라도 나름 이해하고 걸리는데 시간이 꽤 걸렸다. 이 문법은 진짜 많이 쓰일거 같다. 열심히 복습해야지.
728x90
'JAVA' 카테고리의 다른 글
아홉번 째, split() 이란? (0) | 2023.01.25 |
---|---|
여덟번 째, substring() 이란? (0) | 2023.01.10 |
여섯번 째, 람다란? (0) | 2022.11.23 |
다섯번 째, 컬렉션프레임 워크란?(List, Set, Map, Iterator) (1) | 2022.11.18 |
네 번째, Scanner 클래스란? (0) | 2022.11.11 |