Java

Java-예외처리

계단 2019. 7. 25. 22:41

프로그램을 짤 때 대표적으로 고려해야할 부분이 예외처리이다.

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 을 가리킬 수 있다.