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 |
Tags
- 스프링부트
- IPC
- ./gradlew docker
- formmatted
- 비즈니스 계층
- ORM
- 로그인/로그아웃
- 작업명중복
- 프레젠테이션 계층
- 어노테이션
- JPA
- http
- 스프링 부트 테스트
- MSA
- 토큰기반 인증
- 동기
- JWT
- java I/O
- RESTfull API
- 퍼시스턴스 계층
- 스프링부트 계층구조
- 스프링부트 구조
- Java
- @temproal
- 로그인 인증 흐름
- 스프링
- 비동기
- ./gr
- spring
- 세션기반 인증
Archives
- Today
- Total
[DEV] J-Jay
예외(Exception) 본문
728x90
예외(Exception)
프로그램 실행시, 어떤 원인으로 인해 비정상적인 동작을 일으키며 프로그램이 종료되는 상황이 일어 났을때
대부분 사람들은 프로그램이 오류가 발생했다고 생각한다. (어떤 오류인지는 관심 없다)
하지만 나는 개발자니까 개발자 기준에서,
오류는 크게 두가지 종류가 있다. 컴파일 할 때 발생할 수 있는 컴파일 에러, 실행 중 발생되는 런타임 에러
컴파일 에러는 우리가 잡기가 쉽지만(코딩할떄 나오니까) 런타임 오류는 실행 중에 발생하기에 잡기가 어렵다.
그래서 여기선 런타임 에러에 대해서 깊게 살펴보겠다.
런타임 에러
Java에서 런타임 오류는 두종류로 보고있다. 에러(Error)와 예외(Exception)
이 두개의 차이를 알아보자.
에러는 프로그램이 코드로 복구될 수 없는 오류를 의미하고, 예외는 프로그래머가 직접 예측하여 막을 수 있는 처리가능한 오류이다.
예외 처리
예외처리란 말 그대로 예외가 발생했을때 어떤 동작을 처리해야하는지를 말한다.
예외처리의 종류는 아래와 같다.
- try ~ catch ~ finally
예외가 발생했을때 위의 키워드로 예외 처리를 할 수 있다.
여기서 중요한 점은 모든 예외는 Exception 클래스를 상속 받는다.
- throws
예외처리는 위와 같이 try ~ catch문으로 처리할 수도 있지만 아래처럼 예외 처리를 다른 곳으로 넘길 수도 있다.
public static void divide(int a,int b) throws ArithmeticException {
if(b==0) throw new ArithmeticException("몫이 0이면 안됩니다.");
int c=a/b;
System.out.println(c);
}
public static void main(String[] args){
int a=10;
int b=0;
divide(a,b);
}
'Back-end > Java' 카테고리의 다른 글
내부 클래스(Inner Class) (0) | 2024.06.01 |
---|---|
다형성(Polymorphism) (0) | 2024.05.19 |
상속(Inheritance) (0) | 2024.05.19 |
Java 17 주요변화 (0) | 2023.08.31 |
Java I/O - 2 (0) | 2023.05.02 |