TIL(23-01-09)

allnight5·2023년 1월 9일
0

TIL

목록 보기
34/55

드디어 예외처리 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

스프링 예외처리 원리

1. JAVA Exception 에러 출력

  • e.toString() : 에러의 Exception 내용과 원인을 출력합니다.
    (num이 에러인데 무슨 예외로 인한 것인지 원인 이유를 보여주나 발생위치는 보여주지 않는다)
  • e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력합니다.
    (이유와 어느 클래스에서 발생했는지를 알려준다)

2. Exception 의 종류

Checked Exception(꼭 해야하는 예외) vs Unchecked Exception(지나가는 예외)

예외에 따른 대처방법 3가지

1. 예외복구

예외가 발생하면 그 예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복한다.
그리고 최대 재시도 횟수를 넘기면 예외를 발생시킨다.

2.예외처리 회피

예외가 발생하면 throws를 통해 처리하지 않고 호출한쪽으로 예외를 던지고 그 처리를 회피하는 것이다.

3. 예외 전환

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로 요청을 다시 전달함

DB 데이터 조회해보기

조회, Order By, GROUP BY, HAVING,LIMIT, DISTINCT, LIKE, 서브쿼리, WHERE, in

profile
공부기록하기

0개의 댓글