# Ajax 에러 처리하기
## 미션
---
잘못된 api 호출 시, 적절한 응답이 반환되도록 예외처리를 하시오.
![클라우드스터딩-스프링부트-ajax-에러-처리](https://i.imgur.com/L2Mt6Wj.png)
## 개념
---
#### ⭐️ HTTP 응답 코드
HTTP 응답은 크게 5가지로 분류 된다. 이러한 응답 코드는, 세자리 숫자의 형태로 구성된다. 100번대 코드는 관련 정보 알려주고, 200번대는 정상 응답을 의미하며, 300번대는 서버가 클라이언트에게 리다이렉션 요청을 보내는 것이다. 400번대는 클라이언트의 요청에 문제가 있음을, 500번대는 서버측 에러가 발생했음을 나타낸다.
가장 대표적인 응답 코드는 404 Not Found가 있다. 더 자세한 내용은 해당 링크를 참조하기 바란다. (https://developer.mozilla.org/ko/docs/Web/HTTP/Status)
![클라우드스터딩-스프링-부트-HTTP-응답-코드-예-404-not-found](https://i.imgur.com/2ybj5u4.png)
## 튜토리얼
---
#### ⭐️ API 컨트롤러
1) 클래스 생성: "api/ExceptionApiController"
```
@ControllerAdvice("com.example.myblog.api")
public class ExceptionApiController {
@ResponseBody // 뷰 페이지 없이, 반환 값을 그대로 응답!
@ResponseStatus(HttpStatus.NOT_FOUND) // HTTP 상태 응답 설정, 404 not found!
@ExceptionHandler(IllegalArgumentException.class) // 해당 예외 발생 시, 수행!
public String notFound(Exception exception) {
return "{}"; // 비어있는 JSON 객체 반환!
}
}
```
#### ⭐️ 확인하기
2) 잘못된 요청에 대한 응답 확인
![클라우드스터딩-스프링부트-ajax-에러-처리](https://i.imgur.com/L2Mt6Wj.png)
> 위 결과는 Chrome 확장 프로그램 "Link Redirect Trace"을 사용하였음.
## 훈련하기
---
- 웹 서비스에서 발생할만한 예외 상황들. 어떤 것들이 있을지 생각해보자.
## 면접 준비
---
- HTTP 응답의 종류를 200/300/400/500 번대로 나누어 설명?