예외를 처리할 때는 복구가능한 것과 복구 불가능한 것을 분리해야 한다.
보통, 시스템 외적인 요소로 발생하는 치명적이지 않은 오류다.
사용자가 잘못된 전화번호를 입력했다면 이는 시스템을 멈춰야 할 정도의문제라고 할 수 없다.
다시 입력하라는 메시지를 제공하면서 입력을 새로 받으면 된다.
네트워크 오류의 경우, 잠시 후 다시 요청하면 된다.
시스템이 자동 복구할 수 있는 방법이 없는 오류다.
재귀 함수가 너무 깊게 호출되어 스택 메모리가 고갈될 때 발생한다.
하드웨어 문제나 운영 체제의 중대한 버그로 인해 발생한다.
빠르게 개발자에게 문제 원인을 알려야한다.
1) null, -1, 빈 문자열 등 특수값을 예외로 사용하지 않기

-1이 무슨 값인지 한눈에 알기 어렵다.

2) 추적 가능한 예외
실패한 코드의 의도를 파악하려면 다음과 같은 내용이 담겨야 한다.
1)어떠한 값을 사용하다가 실패했는지
2)실패한 작업의 이름과 실패 유형
