Hello

Java 프로그램 오류(error,exception), 예외 클래스의 계층구조

by 볼빵빵오춘기

프로그램 오류

  • 컴파일 에러(compile-time error) : 컴파일 할 때 발생하는 에러
    ⇒ 클래스파일이 만들어지지않아 프로그램 실행할 수 없다.
더보기
system.out.println(args[0]); // System의 대문자가 소문자로 해서 컴파일 에러가 난다.

⇒ 이클립스에서 보면 빨간줄이 그어져 있을것이다.
컴파일러가 구문체크, 번역, 최적화, 생략된 코드 추가 등 다양한 기능을 해준다.

  • 런타임 에러(runtime error) : 실행 할 때 발생하는 에러 
    ⇒ 프로그램은 실행은 되지만 문제가되는 부분에서 종료
더보기
System.out.println(args[0]);
// 컴파일엔 문제 없이 되지만 args[0] 이 아예 없기때문에 runtime 에러 발생

⇒ 런타임 에러. 실행은 되었지만 문제가 되는 부분에서 종료된 후 에러 메세지를 출력해준다.

 

⇒ 실행중에는 여러가지 일이 일어나기때문에 컴파일에러가 일어나지 않더라도 런타임에러가 일어날 수 있다.

  • 논리적 에러(logical error) : 작성 의도와 다르게 동작
    ⇒ 프로그램종료안됨. 동작은하는데 내가 원하는대로 동작을 안함.

 

오류(error) vs 예외(exception)

  • 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
  • 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

에러는 어쩔 수 없지만 예외는 처리하자!

※ Throwable은 클래스. 모든 오류의 조상

 

예외처리의 정의와 목적

  • 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
  • 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것

 

Exception과 RuntimeException

  • Exception 클래스+자손들 - 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외. (ex. 입출력예외)
  • RuntimeException클래스+그 자손들 - 프로그래머의 실수로 발생하는 에러.

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기