드디어 예외처리 Vaild(정규식) 예외때 발생하는 MethodArgumentNotValidException예외를 @ExceptionHandler(MethodArgumentNotValidException.class)로 실행하고 클래스에
extends ResponseEntityExceptionHandler면 중복오류가 났는데 그이유는 상속받는 ResponseEntityExceptionHandler클래스에서도 @ExceptionHandler로 MethodArgumentNotValidException.class를 잡아주고있기 때문이다 그렇기 때문에 같이 쓰려면 ResponseEntityExceptionHandler클래스에서 만들어둔 handleMethodArgumentNotValid 메소드를 override해서 원하는 대로 바꾸어 사용하면된다.. 참고로 MethodArgumentNotValidException의 메시지만 가져다가 String값에 넣어주고 싶다면 ex.getFieldError().getDefaultMessage()이렇게 해주면된다
파이썬에서 사전 등록방법
docs = dict()
docs[s[i]]=i 사전에 키값과 내용넣는법(s[i]: 키값 =i :내용)
자바 해쉬맵과
HashMap<Character, Integer> map = new HashMap<>();
문자로 자르기
char ch = s.charAt(i);
키값 존재하는지 확인하기
map.containsKey(ch)
맵에 키값과 내용넣기
map.put(ch, i);
맵에서 키값에 따른 내용불러오기
map.get(ch);
자바와 자바스크립트는 엄연히 다른언어이다.
자바 스크립트의 사전이 JSON이다.
자바스크립트의 let은 자바와는 다르게 문자, 문자열, 정수형이 다된다
let num = 10;
let isAdult = num > 11; //boolean
console.log(num +name);//무자 +숫자하면 둘 모두 문자로 묶습니다.
console.log(isAdult)//false
Checked Exception(꼭 해야하는 예외) vs Unchecked Exception(지나가는 예외)
예외가 발생하면 그 예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복한다.
그리고 최대 재시도 횟수를 넘기면 예외를 발생시킨다.
예외가 발생하면 throws를 통해 처리하지 않고 호출한쪽으로 예외를 던지고 그 처리를 회피하는 것이다.
SQLException을 중복예외로 바꿔 발생시킬수있다.(호출된 예외를 다른예외로 바꿔서 보낼수있다)
[ Spring의 예외 처리 흐름 ]
1. ExceptionHandlerExceptionResolver가 동작함
1. 예외가 발생한 컨트롤러 안에 적합한 @ExceptionHandler가 있는지 검사함
2. 컨트롤러의 @ExceptionHandler에서 처리가능하다면 처리하고, 그렇지 않으면 ControllerAdvice로 넘어감
3. ControllerAdvice안에 적합한 @ExceptionHandler가 있는지 검사하고 없으면 다음 처리기로 넘어감
2. ResponseStatusExceptionResolver가 동작함
1. @ResponseStatus가 있는지 또는 ResponseStatusException인지 검사함
2. 맞으면 ServletResponse의 sendError()로 예외를 서블릿까지 전달되고, 서블릿이 BasicErrorController로 요청을 전달함
3. DefaultHandlerExceptionResolver가 동작함
1. Spring의 내부 예외인지 검사하여 맞으면 에러를 처리하고 아니면 넘어감
4. 적합한 ExceptionResolver가 없으므로 예외가 서블릿까지 전달되고, 서블릿은 SpringBoot가 진행한 자동 설정에 맞게 BasicErrorController로 요청을 다시 전달함
조회, Order By, GROUP BY, HAVING,LIMIT, DISTINCT, LIKE, 서브쿼리, WHERE, in