일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 2884
- 백준
- 디렉티브
- HTML
- 클래스 패스
- 백준 알고리즘
- 재귀호출기본
- bubble-sort
- BufferedWrite
- 암호론
- 소수판정
- JSP
- 객체지향
- 객체
- lang package
- 예외처리
- OOP
- LANG
- java
- 자료구조
- 공개키 암호
- 자동 형변환
- 알고리즘
- try&catch
- 연결된 예외
- 현대암호
- class
- 프로그래밍
- 형변환 연산자
- jvm
- Today
- Total
코드일기장
Java_예외 처리(예외처리 1-1) 본문
💻 Java에서의 프로그램 에러는 크게 3가지가 있다.
서론으론 에러 3가지를 간략하게 정리하겠다
- 컴파일 에러: 컴파일 시에 발생하는 에러 (실행 아예 불가)
- 런타임 에러: 실행시 발생하는 에러 (컴파일은 가능)
- 논리적 에러: 실행은 되지만, 프로그래머의 의도와 다르게 동작하는 것
또 자바에서 실행 시 발생(런타임 에러) 할 수 있는 오류는 두 가지로 나뉜다.
자바에서 정의 내렸다고 볼 수 있다.
- 에러: 프로그램 코드에 의해 수습될 수없는 심각한 오류
- 예외: 프로그램 코드에 의해 수습될 수 있는 다소 미약한 오류
에러의 대표적인 예는 메모리 부족(OOME: Out OF Memory Error)나 스택오버플로우 (StackOverflow Error)등이 있다. 에러는 아주 심각한 오류이다. 복구 또 한 못한다.
예외는 발생하더라도 수습될 수 있는 비교적 약한 오류이다. 대표적인 예는 배열의 범위를 벗아 난 (ArrayIndexOutOfBoundsException)이 있다. 우리가 배열을 다루면서 쉽게 볼 수 있는 오류이다.
다음은 Error(에러)와 Exception(예외)의 클래스 상속도를 그린 것이다. Java모든 클래스는 Object의 자손이라는 것을 알 수 있다.
모든 예외의 최고 조상은 Exception클래스이다. Exception클래스의 상속도를 살펴보자
위 그림에서 볼 수 있는 예외 클래스들은 크게 두 그룹으로 나뉜다.
1. Exception 클래스와 그 자손들 (그림 파란색 도형)
2. RuntimeException 클래스와 그 자손들 (그림 연두색 도형)
마지막으로 Exception클래스들과 RuntimeException클래스들에 대해 자세히 알아보자.
Exception 클래스들 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException 클래스들 프로그래머의 실수로 발생하는 예외 |
Exception 클래스의 예는 위 상속도에서 나오듯이 IOException, ClasssNotFoundException 또 RuntimeException이 있다.
여기서 제일 중요한 것은 Exception(예외)에서 RuntimeException도 자손이라는 것을 알 수 있다.
주로 외부의 영향으로 발생할 수 있는 예외들이다.
RuntimeException 클래스 ArithmeticException, ClassCastException 등 이 있다.
주로 프로그래머의 실수에 의해 발생하는 예외이다.
📌결론
Java에서의 에러는 크게 3가지이다. (컴파일 에러, 런타임 에러, 논리적 에러) 논리적 에러는 크게 두가지로 나뉜다. (에러,예외) 에러: 심각한 오류 예와: 다소 경미한 오류 예외(Exception)Class의 상속도를 보면 Exception과 (Exception에 RuntimeException도 자손이다.) RuntimeException으로 나뉜다. Exception은 주로 외적인 요인에 의해 발생하는 예외 RuntimeException은 주로 프로그래머의 실수로 발생하는 예외이다. |
🎈 다음 글 보기 (예외처리 1-2)
'Java' 카테고리의 다른 글
[Java] 멀티 catch 블럭, 예외 발생, checked와 unchecked (예외처리1-3) (0) | 2022.01.05 |
---|---|
[Java] try-catch문(예외처리 1-2) (0) | 2021.12.27 |
Java 타입간의 변환과 형변환 연산자 자동 형변환 (0) | 2021.11.22 |
Java_BufferedReader /BufferedWrite (0) | 2021.10.06 |
Java_Arrays class (0) | 2021.10.04 |