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
- SQL_용어정리
- 다이어그램
- CSS
- 이클립스
- 인덱스
- java
- github
- jsp
- asp.net
- 자바
- 아파치톰캣
- Git_정리
- 배열
- Spring_에러정리
- vb.net
- git
- Spring_오류정리
- JavaScript
- Linux_명령어정리
- json
- spring
- 인스턴스
- 자바스크립트
- workbench
- Linux
- Git_명령어정리
- DML
- MySQL
- SQL
- HTML
Archives
- Today
- Total
데브마우스
[Java] 예외 처리(try-catch-finally) 정리 본문
예외(Exception)는 무엇인가요?
만약 사용자로부터 나이를 숫자로 입력받으려는데 한글로 '열아홉살'이라고 입력했다면 어떨까요?
데이터 타입은 int 타입으로 선언되었지만 입력된 값은 문자열입니다. 이처럼 예상치 못한 상황에서 예외가 발생합니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력해주세요 : ");
int age = sc.nextInt();
System.out.println("age : " + age);
// 나이를 입력해주세요 :
// 열아홉살
// Exception in thread "main" java.util.InputMismatchException
// at java.base/java.util.Scanner.throwFor(Scanner.java:939)
// at java.base/java.util.Scanner.next(Scanner.java:1594)
// at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
// at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
// at Main.main(Main.java:8)
}
}
자바 프로그램은 프로그램 시작될 때 예외 객체가 함께 생성되어서 예외 발생 시 발생한 예외를 출력합니다.
예외 처리(Exception Handling)는 무엇인가요?
예외가 발생하였을 때 어떻게 프로그램이 작동되게 할 것인지 처리합니다. 그리하여 프로그램이 비정상적으로 종료되는걸 막는 것입니다.
try-catch
try 안에는 예외가 발생할 수 있는 코드를 작성합니다.
catch안에는 예외 발생 시 실행할 코드를 작성합니다.
try-catch-finally
finally 구문은 예외 발생 여부 상관없이 실행됩니다. 그렇기에 finally는 주로 통신처럼 외부와 연결하는 부분을 종료하는 작업에 주로 사용됩니다.
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력해주세요 : ");
try {
int age = sc.nextInt();
System.out.println("age : " + age);
} catch(InputMismatchException e) {
System.out.println("숫자로 입력해주세요. 예시) 19");
} finally {
System.out.println("예외 여부와 관계없이 실행됩니다.");
}
}
}
'Java > Java: 문법 정리' 카테고리의 다른 글
[Java] 추상 메서드와 추상 클래스 정리 (0) | 2024.01.13 |
---|---|
[Java] 예외 발생하는 throw와 예외를 던지는 throws 정리 (0) | 2024.01.13 |
[Java] 내부 클래스 정리 (0) | 2024.01.13 |
[Java] 다형성 정리 (0) | 2024.01.13 |
[Java] 접근제어자 정리 (0) | 2024.01.12 |