1. Exception
- 에러(Error) : 문법이나 메모리 사용 문제로 실행에 문제가 생겨 발생하는 오류
- 예외(Exception): 사용자의 오 조작이나 외부 문제로 발생하는 오류
Exception 예)

- 예외는 또 일반 예외(Exception)와 실행 예외(Runtime Exception)로 분리 된다.

- 일반 예외는 JVM 에서 필요하다고 판단하면 자동으로 예외처리를 해 준다.
- 제일 중요한거는 NullPointException 꼭 알아두기

<요약>
- 다형성은 자식 객체가 부모 객체 형태의 변수에 들어갈 수 있는 것이다.
- 다만 부모 형태의 변수에 들어가면 자식 고유의 기능을 쓸 수 없다.
- 이 경우 casting 을 통해 자식 형태로 되돌아 가야 한다.
- 되돌아 갈 때 원형을 잘 찾아가야 한다.
2. 예외 처리
- Exception 은 불가피한 외부 문제로 발생하므로 프로그램이 정지 하지 않도록 해야 한다.
- 그래서 예외 처리를 통해 exception 발생 시에도 프로그램이 정상 작동 하도록 한다.
- 예외 처리에는 try-catch 와 throws 라는 두 가지 방법을 사용 한다.

3. Try-catch & throws
- try-catch 는 try 영역 안에서 exception 발생시 catch 를 실행하는 구문 이다.
- Finally 는 exception 발생시에도 꼭 실행할 code 를 작성 해 준다.
- 책임 전가는 결국 본인이 처리 하겠다(try-catch)는 곳에서 끝난다.
- 프로그램 시작점 에서도 throws 를 할 경우 JVM 에서 처리 하게 된다.(예외 내용 콘솔 출력)

4. multi catch
- Exception 이 꼭 하나만 발생 하라는 법은 없다.
- 이 경우 multi catch 또는 OR exception 을 사용 하면 된다.

- 예외는 공통적으로 Exception 을 상속 받는다.
- 때문에 모든 예외를 받아 내고 싶을 경우는 Exception 하나로 처리가 가능 하다.

