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
- 입출력
- 1일차
- 리스트와 차이점
- 조지 불
- 부스트캠프
- 차집합
- 조건문 큰 수부터 입력받아야하는 이유
- Python
- null # undefined
- Java Script # == # === # difference # 차이
- 변할 수 있는
- del()
- pop()
- 성적 입력받기
- 변수
- a=1
- 불리안
- false
- index()
- 딥러닝
- 파이썬
- 합집합
- 귀도 반 로섬
- 정보를 담을 수 있는 그릇
- append()
- insert()
- html
- 그룹 # 그룹 해체 # 단축키 #figma #Figma
- 변수와 입출력
- input()
Archives
- Today
- Total
I about me
[Final] Exception 본문
☕ 자바 예외 처리(try catch) 문법 & 응용 정리
예외(Exception) 처리하기 예외 처리(exception handling) 이란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는것이다. 자바의 코드를 예외 처리를 한다고 해서 프
inpa.tistory.com
- "오류"를 체계적으로 처리하는 방법
- 어디서 발생하는가?
- 읽기를 위해 열리는 파일이 없는 경우
- 0으로 나눌 때
- 배열
- 읽기를 위해 열리는 파일이 없는 경우
- 어디서 발생하는가?
이제 이 친구들을 각각 예외처리 class를 만들어서 처리해줄거야
ex 1) IO 예외처리
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class IOExceptionExample {
public static void main(String[] args) {
try {
File file = new File("example.txt");
FileReader fr = new FileReader(file);
// 파일 읽기 작업 수행
fr.close();
} catch (FileNotFoundException e) {
System.out.println("파일을 찾을 수 없습니다: " + e.getMessage());
} catch (IOException e) {
System.out.println("입출력 예외 발생: " + e.getMessage());
}
}
}
ex 2) NullPoint
public class NullPointerExceptionExample {
public static void main(String[] args) {
String str = null;
try {
int length = str.length();
} catch (NullPointerException e) {
System.out.println("널 포인터 예외 발생: " + e.getMessage());
}
}
}
- Throwing your own exception
- Some errors can be checked by the compiler
// 즉, 몇몇 에러는 체크해줘야돼
ex) 파일 열기 이런거 try 해가지고 열리는지 안 열리는지 - Run time exceptions won't be checked
// 즉, 따로 설정 하지 않아도 알아서 error 끄긴 하여 체크라지 않아도 된다.
ex) 0 나누기, 배열 인덱스 오류 - Different exception classes in java
// 서로 다른 예외처리 기법들이 있다.
Throwable | https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%98%88%EC%99%B8-%EB%8D%98%EC%A7%80%EA%B8%B0throw-%EC%98%88%EC%99%B8-%EC%97%B0%EA%B2%B0Chained-Exception | |
Exception | Checked Exception | - IOException - SQLException |
Unchecked Exception (RuntimeException) |
- NullPointerException - ArrayIndexOutOfBoundsException - ArithmeticException |
|
Error | - OutOfMemoryError - StackOverflowError |
- Using finally
- 여기서 sample.shouldBeRun()는 절대로 실행될 수 없다. 왜냐하면 4/0에 의해 ArithmeticException이 발생하여 catch 구문으로 넘어가기 때문이다.
- 만약 sample.shouldBeRun() 메서드가 반드시 실행되어야 한다면 이런 경우를 처리하기 위해 자바에서는 다음과 같이 finally 문을 사용한다.
- Handling multiple exceptions
- ① Separate by a comma
쉼표가 아닌 | (파이프) 기호로 구분
위의 코드에서는 IOException이나 SQLException 중 어느 것이 발생하든 동일한 catch 블록에서 처리됨
try { // 예외가 발생할 가능성이 있는 코드 } catch (IOException | SQLException | ClassNotFoundException ex) { // 세 가지 예외를 동일하게 처리 ex.printStackTrace(); }
- ② Multiple catch blocks
여러 개의 catch 블록을 사용할 수 있음
try { // 예외가 발생할 가능성이 있는 코드 } catch (IOException ex) { // IOException을 처리 ex.printStackTrace(); } catch (SQLException ex) { // SQLException을 처리 ex.printStackTrace(); } catch (ClassNotFoundException ex) { // ClassNotFoundException을 처리 ex.printStackTrace(); }
- ① Separate by a comma
'Java' 카테고리의 다른 글
[Final] File I/O (0) | 2024.06.13 |
---|---|
[Final] Exception Handling 문제 풀이 (0) | 2024.06.11 |
[Final] Interface (0) | 2024.06.10 |
[Final] Abstract Classes (0) | 2024.05.07 |
[MidTerm] 1. Java Elements (0) | 2024.04.22 |