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 |
Tags
- JPA
- 클라우드 컴퓨팅
- DB
- dfs
- BFS
- JDBC
- 가상컴퓨팅
- cloud computing
- sql
- jsp
- MVC
- 자료구조
- generic class
- 자바의정석
- javascript
- 코테
- spring
- 크루스칼
- 생성자
- 암호학
- Stack
- dbms
- 공개키 암호화
- Java
- Algorithm
- 알고리즘
- data structure
- Queue
- 코딩테스트
- python
Archives
- Today
- Total
PLOD
[Java] Exception(예외 처리) 본문
자바에서 일어날 수 있는 Exception은 에러와 예외가 있다. 일단 에러는 하드웨어의 오동작 또는 고장으로 인한 오류를 의미하고 에러가 발생되면 프로그램을 종료한다. 또 정상 실행 상태를 돌아갈 수 없다. 예외는 사용자의 잘못된 조작된 또는 개발자의 잘못된 코딩으로 인한 오류를 의미한다. 예외가 발생되면 프로그램을 종료되고 예외 처리를 추가하면 실행 상태로 돌아 갈 수 있다.
개발자의 프로그래밍으로 인한 에외는 예외처리를 통해 IDE에서 원활하게 코드를 돌아가게 할 수 있다.
try 문에서 예외가 일어날 것 같은 코드를 작성하고 catch 문에서 예외를 잡고 예외처리를 한다. finally문은 예외가 있든 없든 항상 실행되는 문장이다.
public class ExceptionEx01 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
try {
System.out.print("X : "); // 예외가 일어날 것 같은 코드를 try 문에 삽입
int x = scn.nextInt();
System.out.print("Y : ");
int y = scn.nextInt();
int div = x/y;
System.out.println("div : " + div);
}catch (ArithmeticException e) { // 0으로 나누었을 때 생기는 예외를 잡아준다
System.out.println("0으로 나눌 수 없습니다");
System.out.println(e.getMessage() + "\t");
e.printStackTrace();
}catch (InputMismatchException e) { // 정수가 아닌 문자를 넣었을 때 생기는 예외를 잡아준다.
System.out.println("정수만 입력하실 수 있습니다");
System.out.println(e.getMessage() + "\t");
}
scn.close();
}
}
* 예외 떠넘기기(throws)
메서드에서 발생한 예외를 내부에서 처리하기가 부담스러울 때에는 throws 키워드를 사용해 예외를 상위 코드 블록으로 양도 할 수 있다. throws는 예외를 해당 블록에서 처리하지 않고 다른 코드블록으로 떠넘긴다. 예외를 찾지 못하면 프로그램은 자연종료된다.
public class ExceptionEx02 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
try {
square(scn.next());
} catch (NumberFormatException e) {
System.out.println("정수가 아닙니다.");
}
}
private static void square(String s) throws NumberFormatException{ // 메서드에서 오류를 처리하지 않고 메인으로 떠넘김
int n = Integer.parseInt(s);
System.out.println(n);
}
}
'개발 공부 > Java' 카테고리의 다른 글
[Java] sort(정렬) (0) | 2023.05.31 |
---|---|
[Java] 제네릭 클래스 (Generic Class) (0) | 2023.01.24 |
[Java] API 및 Collection Framework (Map, Set, List) (0) | 2023.01.16 |
[Java] interface(인터페이스) (0) | 2023.01.15 |
[Java] 업캐스팅(upcasting), 다운캐스팅(downcasting) (0) | 2023.01.13 |
Comments