Java 16일차 3-2(예외처리)
2022. 12. 1. 12:26ㆍ코딩배움일지/JAVA
catch (Exception e) { /*한방에 예외*/ /*위에서 else if 처럼 내려온다. 개발자가 예상하지 못한 예외를 처리하기 위해서. 마지막에 입력 log file*/
e.printStackTrace(); /*어디에서 무엇이 잘못 되었는지 알 수 있다.*/
}
/*한방에 예외*/ /*위에서 else if 처럼 내려온다. 개발자가 예상하지 못한 예외를 처리하기 위해서. 마지막에 입력 log file*/
log file 또한 개인 정보이기 때문에 동의를 받아야 한다. 통계
finally { /*무조건 마지막에 실행 되는 부분 예외가 발생했든 말든 간에*/ /*데이터 자동 백업*/
System.out.println("무조건 실행");
}
/*무조건 마지막에 실행 되는 부분 예외가 발생했든 말든 간에*/ 예외 처리를 못해도 됨 이러면 데이터 자동 백업이다.
import java.util.ArrayList;
import java.util.List;
import lombok.Builder;
import lombok.Data;
@Builder
@Data
class User{ /*서브클래스*/ /*default*/
private String username;
private String password;
}
public class UserListException { /*메인 클래스 는 이름이 같아야 함.*/
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User("aaa", "1111"));
userList.add(new User("bbb", "2222"));
userList.add(new User("ccc", "3333"));
userList.add(new User("ddd", "4444"));
userList.add(null);
int length = userList.size();
try {
for (int i = 0; i < length; i++) {
System.out.println(userList.get(i));
}
for (int i = 0; i < length; i++) {
System.out.println("username: " + userList.get(i).getUsername());
System.out.println("password: " + userList.get(i).getPassword());
} /*try 문에서 오류 발생하면 */
} catch (IndexOutOfBoundsException indexOutOfBoundsException) { /*java.lang.IndexOutOfBoundsException 대입 해야한다.*/
length -=1;
System.out.println(indexOutOfBoundsException.getMessage());
try {
for (int i = 0; i < length; i++) { /*위에서 오류났기 때문에 한번더 실행 해야함. 이번에는 */ /*java.lang.NullPointerException:*/
System.out.println("username: " + userList.get(i).getUsername());
System.out.println("password: " + userList.get(i).getPassword());
}
} catch (NullPointerException nullPointerException) {
System.out.println( nullPointerException.getMessage());
}
}
catch (NullPointerException nullPointerException) { /*NullPointerException 한번더 잡아 줘야함*/
System.out.println( nullPointerException.getMessage());
}
catch (Exception e) { /*한방에 예외*/ /*위에서 else if 처럼 내려온다. 개발자가 예상하지 못한 예외를 처리하기 위해서. 마지막에 입력 log file*/
e.printStackTrace(); /*어디에서 무엇이 잘못 되었는지 알 수 있다.*/
}
finally { /*무조건 마지막에 실행 되는 부분 예외가 발생했든 말든 간에*/ /*데이터 자동 백업*/
System.out.println("무조건 실행");
}
System.out.println("프로그램 정상 종료");
}
}
'코딩배움일지 > JAVA' 카테고리의 다른 글
Java 17일차 1(예외 미루기) (0) | 2022.12.02 |
---|---|
Java 16일차 4(예외처리) (0) | 2022.12.01 |
Java 16일차 3-1(예외처리) (0) | 2022.12.01 |
Java 16일차 3(예외처리 (0) | 2022.12.01 |
Java 16일차 2(JSON) (0) | 2022.12.01 |