질문 1 : Checked Exception 과 Unchecked Extion 의 차이점은 ?
- 발생 시점과 예외 처리를 강제하는 여부에 따라 차이가 있을 수 있음

질문 2 : finally 블록은 언제 실행되며, 반환값이 있는 경우에도 실행되는가 ?
- finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 블록
- try-catch 문을 사용할 때 반드시 실행되어야 하는 코드가 존재할 때 사용
- try 문에는 예외가 발생하지 않으면 catch문은 실행되지 않지만 finally 블록은 항상 실행한다
- finally 블록이 항상 실행되지 않을 수 있음
- System.exit(0) 이 호출되어 JVM이 즉시 종료된 경우
- try블록에서 무한 루프 또는 무한 재귀 호출이 발생하는 경우
2-2
- finally 블록은 메소드에서 return 문이 있더라도 항상 실행됨
- 하지만 finally에서 return 을 사용하면 기준의 return 값을 덮어쓸 수 있음
질문 3 : 예외 전파 (exception propagation)란 무엇이며, 어떤 경우에 유용한가?
- 예외가 발생한 메소드에서 직접 처리하지 않고, 호출한 상위 메소드로 전달(전파)하는 것을 의미함
- 예외가 발생한 메소드에서 try-catch문으로 처리하면 호출한 메소드로 전파됨
- 예외가 계속 전파되다가 최종적으로 main() 메소드까지 도달하면 프로그램이 비정상 존료
3-2 예외 전파는 언제 유용한가 ?
- 예외 전파 덕분에 try-catch 문을 불필요하게 여러 곳에서 사용하지 않아도 됨
- 원하는 곳의 메소드에서 try-catch문을 사용하면 해당 try-catch문에서 에러가 잡힘
- 에러가 잡히면 관련 비즈니스 처리를 할 수 있음