Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 코드스테이츠
- Spring MVC 구성요소
- 인텔리제이
- 재귀함수
- OOP
- 알고리즘
- String.valueOf()
- MySQL
- 투포인터알고리즘
- 코드스테이츠 백엔드
- 버블정렬
- 백준
- vm인스턴스생성
- 재귀와반복문
- 스택
- List.of
- 백준 11659
- GCP
- Spring Web MVC
- Spring MVC 동작원리
- Array.asList
- 구간합구하기
- 싱글톤패턴
- 성능테스트툴
- 자바
- 클라우드에서 도커 실행하기
- 코딩테스트
- java
- 11659
- 프로그래머스
Archives
- Today
- Total
순간을 기록으로
[Java] 오류, 에러, 예외(Exception) 본문
오류
프로그램이 실행 중에 오작동을 하거나 비정상적인 종료를 하는 경우가 있습니다. 이때 이렇게 비정상적인 종료를 하도록 만든 원인을 프로그램 오류 또는 에러라고 합니다.
시점에 따른 에러 종류
- 컴파일 에러(Compile Error): 컴파일 시에 발생하는 에러
- 컴파일러가 컴파일하는 과정에 잘못된 문법 등을 발견했을 때 발생하는 에러입니다.
- 런타임 에러: 실행 중에 발생하는 에러
- 사실은 에러라는 표현보다 오류가 더 좋습니다. 오류 안에 에러와 예외가 있다고 생각하는 게 편합니다.
- 논리적 에러: 실행은 되지만, 의도와는 다르게 동작하는 에러
런타임 에러(오류)의 2가지 종류
- Error(에러): 코드로 극복할 수 없는 심각한 오류. 개발자가 고치지 못한다.
- Exception(예외): 코드로 수습될 수 있는 오류를 의미합니다. 에러에 비하면 상대적으로 경미한 오류입니다.
런타임 에러의 계층구조
- 모든 클래스는 Object 클래스를 상속하므로 오류 관련 클래스 또한 Object를 상속합니다.
- Throwable은 e.getMessage()와 e.printStackTrace()는 정의합니다.
- 에러는 개발자가 개선할 수 있는 오류가 아니므로 해결할 수 있는 Exception에 집중합니다.
예외 클래스의 구조
예외클래스는 크게 2가지로 구분할 수 있습니다.
- Exception 클래스와 그 자손들(RuntimeException과 그 자손들은 제외)
- 프로그램 사용자 동작에 의해 발생할 수 있는 예외들입니다.
- 예를 들어 존재하지 않는 파일의 이름을 입력할 경우에는 FileNotFoundException이 발생합니다.
- 예를 들어 데이터 형식을 잘못 입력한 경우에는 DateFormatException이 발생합니다.
- RuntimeException 클래스와 그 자손들
- 프로그래머스 실수로 발생하는 예외들입니다.
- 예를 들어 사이즈가 5인 배열에 arr[5]에 접근하면 ArrayIndexOutOutBoundsException이 발생합니다.
- 예를 들어 숫자 5를 0으로 나누면 ArithmeticException이 발생합니다.
'Development > JAVA' 카테고리의 다른 글
[Java] 정규표현식 정리 (0) | 2022.10.28 |
---|---|
[Java] InstanceOf 사용하는 이유 (0) | 2022.10.20 |
[Java] Wrapper 클래스는 왜 필요할까? (0) | 2022.10.11 |
[Java] Arrays.asList와 List.of 차이점 (0) | 2022.06.28 |
[Java] toString() vs valueOf() 차이 (2) | 2022.05.31 |
Comments