자바의정석

[자바의 정석 - 기초편] ch8-1~3 프로그램오류. 예외 클래스의 계층구조

유호야 2022. 3. 24. 17:27
반응형

ch8-1 프로그램 오류

프로그램 오류에는 종류가 3가지가 있다. 
1) 컴파일 에러 : 컴파일 할 때
2) 런타임 에러 : 실행할 때 > 프로그램 종료
3) 논리적 에러 : 컴파일도 통과 실행도 통과 하지만 작성 의도와 다르게 동작하는 경우 

 

컴파일 에러 javac.exe (자바 컴파일러)
이클립스에서 자동으로 해준다.

컴파일러

1) 구문체크 (문법에 맞게)
2) 번역
3) 최적화 

public class ExceptionTest {

	public static void main(String[] args) {
		system.out.println(args[0]);
	}

}

 

간단한 계산은 컴파일러가 계산을 한다 (최적화) 
extends Object 와 같은 생략된 코드들을 추가해준다. 


실행중 발생하는 에러를 : 런타임 에러

발생하는 이유? 
매개변수로 넘어온 값이 없기 때문에, 에러가 뜬다. 

컴파일은 잘 되었다는 뜻 

javac 실행은 java class이름

 

- java의 런타임 에러

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

out of memory Error (OM)

간단한 것들은 우리가 처리할 수 있는 '예외' 이다. 
예외처리..... 의 이유 


저장할 기회가 있어야 하는데, 예외 처리의 정의란 예외의 오류에 대한 대비한 코드를 작성하는 것 

컴파일 실행 javac className.java
실행시 java className


ch8-2 예외 클래스의 계층 구조

 심각한 오류 미약한 오류 모두 런타임 에러의 종류이다. 

Exception의 자손을 두 부분으로 나눌 수 있다. 
Exception 과 그 자손들 하나는 RuntimeException

모든 예외는 Exception의 자손이지만, 그 중에서도 
RunTimeException의 자손과 그렇지 않은 것을 둘로 나눌 수 있다. 


ch8-3 Exception과 RuntimeException 

외적인 요인들 vs 프로그래머의 실수(RuntimeException 클래스들) 

입출력 예외 / 입력, 출력 (I/O) Input, Output
- IOException 입출력 예외
- ClassNotFoundException 클래스가 존재하지 않는 경우 

런타임 예외 
ArithmeticException 산술계산예외 
ClassCastException 형변환
NullPointerException 널포인터
IndexOutOfBoundsException 배열 범위가 벗어나는 경우 

>> 프로그래머의 실수에 의해 발생하는 경우이다. 

반응형