일반 예외는 컴파일 과정에서 에러를 발생시켜 종료 시키지만
실행 예외는 컴파일러가 체크해주지 않기 때문에 개발자의 경험을 토대로 직접 짜주어야합니다
try-catch-finally 블록으로 예외처리가 가능
정상 실행의 경우
예외가 발생되었을 경우
try 블록 내부에는 다양한 예외가 발생할수 있습니다
이경우 발생되는 예외별로 예외처리 코드를 작성할수 있는데 이를 다중 catch 라고 합니다
하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch블록으로 이동하기 때문에 동시 다발적인 예외는 발생하지 않습니다
상위 예외 클래스가 하위 예외 클래스보다 아래에 있어야합니다
try 블록에서 예외가 발생시 예외를 처리할 블록은 위에서부터 차례로 검색되기 때문에 만약 상위 예외 클래스의 catch 블록이 위에 있다면 하위 예외 클래스의 catch 문은 실행되지 않습니다
throws 키워드는 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않는 예외를 호출한 곳으로 떠넘기는 역할을 합니다.
리턴타입 메소드이름(매개변수,...) throws 예외클래스1, 예외클래스2, ...{
}
발생할 수 있는 예외의 종류별로 throws뒤에 나열하는 것이 일반적이지만, throws Exception 만으로 모든 예외를 간단히 떠넘길수도 있습니다
리턴타입 메소드이름(매개변수,...)throws Exception{
}