프로그램 오류는 세 가지로 나뉜다
- 컴파일 에러 : 컴파일 시에 발생 -> 이클립스가 잡아주는 에러
- 런타임 에러 : 실행 시에 발생 -> 문제 없는 거 같은데 발생
- 논리적 에러 : 실행은 되는데, 의도와 다르게 동작 -> ^^....
컴파일이 잘 되었어도
실행 중 에러가 나서 잘못 된 결과를 얻거나
프로그램이 비정상적으로 종료 될 수 있음
런타임 에러는 두 가지로 나뉨
- 에러 (error) : 프로그램 코드로 수습 불가능한 심각한 오류
- 예외 (Exception) : 프로그램 코드로 수습 가능한 미약한 오류
에러 예) 메모리 부족(OutOfMemoryException) / 스택오버플로우(StackOverflow)
<예외 클래스 계층 구조> Exception과 Error
자바는 오류를 클래스로 정의한다, 그래서 최고 조상은 Object !!!
--- Exception - RuntimeException, IOException....
Object ----Throwavle ----
ㄴ Error - IOException, OOME ....
예외의 최고 조상은 Exception 클래스!
예외는 크게 두 부류로 나뉜다
1.Exception 클래스와 그 자손(직접 연결되어있음)
2.RuntimeException 클래스와 그 자손....
<Exception과 RuntimeException> - 오류의 두 분야?ㅎㅎ
Exception 클래스들 : 사용자의 실수 같은 외적인 요인으로 발생
RuntimeException 클래스들 : 프로그래머의 실수로 발생
- Runtime 예
ArrayIndexOutOfBonusException -> 배열 길이 벗어남 (가끔 보임ㅎㅎ)
NullPointException -> 값이 Null인 참조 변수에 멤버 호출 (얘 진짜 싫음 ㅎㅎ)
ClassCastException -> 클래스 형변환 잘못함 (다행히 처음봄 ㅎㅎ)
- Exception 예
FileNotFoundException -> 존재하지 않는 파일
ClassNotFoundException -> 실수로 클래스 이름 잘못 입력
DataFormatException -> 입력한 데이터 형식이 잘못 됨
'국비 학원 가서 개발새발' 카테고리의 다른 글
예습)예외 처리(try-catch) (0) | 2022.10.10 |
---|---|
Comparable 과 Comparator 차이(익명클래스 사용) (0) | 2022.10.10 |
예습) 디폴트 메서드와 스태틱 메서드(인터페이스) , 내부클래스... (1) | 2022.10.08 |
국비학원 9일차) 상속, instanceof, 타입변환... 예습)인터페이스 (1) | 2022.10.08 |
국비학원 8일차) 상속, protected, super..(예습:추상클래스) (1) | 2022.10.06 |