Java-예외처리
프로그램을 짤 때 대표적으로 고려해야할 부분이 예외처리이다.
Java는 이러한 예외처리를 Class로 구현하는데,
대표적인 방법으로 try/catch 문으로 오류가 걸렸을 때의 대처방안을 실행하는 방법과
메소드나 클래스에 예외 클래스를 상속받아 함수를 정지시키는 방법이 있다.
이번 글에서는 예외처리 방법에 대한 비교와 예외클래스에 대한 설명을 기록하겠다.
# RuntimeException
- java 에서 각종 에러는 class 로 구현된다.
extends Exception, extends RuntimeException
- 코드 수행시 에러가 발생되면 해당 예외 클래스의 인스턴스를 throw한다.
- 발생된 예외를 적절하게 처리하지 못하면 프로그램은 종료한다.
- "예외는 함수 수행시에 발생되고, 함수에 그 사실을 명시한다."
# RuntimeException 과 Exception의 차이, Try catch 문
- RuntimeException 일 때는 컴파일 되지만 실행 때 안됨.
- Exception 일 때는 컴파일 안됨. 그러나 함수 뒤에 throws 붙이면 됨.
- 함수에서 에러가 발생할 수 있다면 그 사실을 선언부에 명시해야 컴파일 된다.
- throws FuelException 으로 선언된 함수를 호출할 때는
반드시 에러가 발생할 수 있는 영역을 try{} 로 감싸준다.
- try에는 반드시 1개 이상의 catch 가 있어야 한다.
- 에러가 발생되면 에러 인스턴스를 throw 한다.
- catch( FuelException e )에 잇는 e 변수가 발생된 에러 인스턴스를 가리킬 수
있으면 catch에 딸린 {...} 가 동작한다.
... 에는 에러를 수습할 수 있는 코드가 들어가는 것이 바람직하다.
- 조상의 참조형 변수는 자손의 인스턴스를 가리킬 수 있어서,
Exception e 는 FuelException 을 가리킬 수 있다.