Java 16일차 4(예외처리)
2022. 12. 1. 12:54ㆍ코딩배움일지/JAVA
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class CustomExceptionMain {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String username = null;
String password = null;
System.out.print("아이디: ");
username = scanner.nextLine();
System.out.print("비번: ");
password = scanner.nextLine();
try{
if (username.isBlank() && password.isBlank()) {
Map<String, String> errorMap = new HashMap<>();
errorMap.put("username", "아이디를 입력하세요.");
errorMap.put("password", "비번를 입력하세요.");
throw new CustomException("유효성 검사 실패", errorMap);
}else if(password.isBlank()) {
Map<String, String> errorMap = new HashMap<>();
errorMap.put("password", "비번를 입력하세요.");
}else if(username.isBlank()) {
Map<String, String> errorMap = new HashMap<>();
errorMap.put("username", "아이디를 입력하세요.");
}
System.out.println("회원 등록 진행");
} catch (CustomException e) {
e.printStackTrace();
System.out.println("내가만든 예외 처리함!!!");
try {
e.printErrorMap(); /*java.lang.NullPointerException*/
} catch (NullPointerException e2) {
e2.printStackTrace();
}
}
System.out.println("프로그램 종료");
}
}
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
public class CustomException extends RuntimeException {
private static final long serialVersionUID = 1L; /* 직렬화 */
Map<String, String> errorMap;
public CustomException() { /*오버로드*/ /*아무것도 없을때*/
super();
}
public CustomException(String message) { /*오버로드*/ /*메세지만 있을때.*/
super(message);
}
public CustomException(Map<String,String> errorMap) { /*오버로드*/ /*errorMap 만 있을때*/
super();
this.errorMap = errorMap;
}
public CustomException(String message,Map<String,String> errorMap) {
super(message);
this.errorMap = errorMap;
}
public void printErrorMap() {
Objects.requireNonNull(errorMap); /*만약에 errorMap이 Null인 경우 NullpointException를 날려준다.*/
for(Entry<String, String> entry : errorMap.entrySet()) {
System.out.println(entry.getKey() + ">>>" + entry.getValue());
}
System.out.println();
}
}
출력
아이디: asdf
비번: 123
회원 등록 진행
프로그램 종료
예
// try{
// throw new CustomException("내가 만든 예외"); /*예외*/
//
// } catch (CustomException e) {
// e.printStackTrace();
// System.out.println("내가만든 예외 처리함!!!");
// try {
// e.printErrorMap(); /*java.lang.NullPointerException*/
// } catch (NullPointerException e2) {
// e2.printStackTrace();
// }
// }
// System.out.println("프로그램 종료");
'코딩배움일지 > JAVA' 카테고리의 다른 글
Java 17일차 2(익명클래스) (0) | 2022.12.02 |
---|---|
Java 17일차 1(예외 미루기) (0) | 2022.12.02 |
Java 16일차 3-2(예외처리) (0) | 2022.12.01 |
Java 16일차 3-1(예외처리) (0) | 2022.12.01 |
Java 16일차 3(예외처리 (0) | 2022.12.01 |