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
- 백준
- overriding
- 싱글톤
- 파이썬
- ChainMap
- 싱글톤 레지스트리
- orderedDict
- null
- defaultdict
- java
- GCP Storage
- Spring Framework
- 외부조인
- DAO
- select
- 개발기록
- 121
- 데이터베이스
- 자바
- 청크
- spring
- 오버라이딩
- react
- 스프링
- PYTHON
- 리스트 자르기
- DAO의 분리
- JIT
- Oracle
- 쓰는이유
Archives
- Today
- Total
PengTory
[Java] 예외처리 본문
예외처리 (Exception)
예외: 잘못된 사용 또는 코딩으로 인한 오류
개발자가 예외 처리를 통해 계속 실행 상태를 유지할 수 있다. (프로그램이 중단되지 않도록 하기 위해)
일반 예외(Exception): 컴파일러가 예외처리 코드를 검사하는 예외를 말함
실행 예외(Runtime Exception): 컴파일러가 예외처리 코드 여부를 검사하지 않는 예외를 말함
구조
try {
예외 발생 가능성이 있는 코드
} catch (Exception e) {
예외가 발생하면 실행되는 코드
} finally {
무조건 실행되는 코드
}
public class ExceptionEx {
public static void main(String[] args) {
System.out.println("시작");
try {
System.out.println(3 / 0); // ArithmeticException 예외 발생 (0으로 나눌 수 없음) -> 바로 catch문 실행
int[] arr = { 1, 2, 3 };
System.out.println(arr[4]);
System.out.println("출력");
} catch (Exception e) {
System.out.println("예외발생");
System.out.println(e.toString());
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 예외가 발생하던 안하던 무조건 실행
// 리소스 자원을 해제할 때 거의 다 씀 (자원을 효율적으로 사용하기 위해)
System.out.println("무조건 실행");
}
System.out.println("끝");
}
}
throws와 throw
예외 떠넘기기: throws (나를 실행한 곳으로)
강제예외 발생: throw new 예외클래스()
- 실행되는 메서드에서 throws를 하고 있다 -> 무조건 예외처리!! (해결 방법: try ~ catch를 해줌 OR 나도 throws로 던져줌)
예외처리 안하면 compile 에러 발생 (unhandled~ )
+ ) 리소스 자동 닫기
try ~ resource: 자동 close
try 입장
자원객체를 내가 해제시켜주고 싶음 -> ac.close()
'Java' 카테고리의 다른 글
[Java] 상속 (Inheritance) (1) | 2023.03.10 |
---|---|
[Java] static과 instance (+ final, package) (0) | 2023.03.09 |
[Java] 클래스 (필드/생성자/메서드) (0) | 2023.03.09 |
[Java] 참조타입/ String / 배열 (0) | 2023.03.07 |
[Java] Compile언어 / Interpreter언어 / JIT / Java의 특징 (1) | 2023.03.02 |