예외란?
예외,에러,오류,이슈,문제,컴플레인,...
프로그램을 비정상적으로 종료되게하는 문제들
=>사용자가 원할때 종료하는 것이 바람직함
Exception
예외가 발생되면 캡쳐 =>원인파악=>해결책
예외처리를 왜해야하는가?
프로그램은 절대 비정상 종료되면 안됨
1) 예외가 발생되면 무시하고 다음 스텝으로 이동
2) 예외가 발생할수 있으니까, 제대로 사용해~ 하고 안내 <=대부분 사용
try문
예외가 발생할것 같은 코드를 작성
catch
예외가 발생즉시 수행
[문제 1]
사용자가 1~10사이의 정수를 입력해야합니다. 정상입력해야 종료됩니다
정수입력 >> 정수
정수를 입력해주세요
1~10사이로 입력해주세요!
정수입력 >> 5
5를 입력했습니다!
한글코딩
1~10사이의 정수를 입력해야합니다. 정상입력해야 종료됩니다
while
try
정수입력 >> 정수
catch
정수를 입력해주세요
1~10사이로 입력해주세요!
try
정수입력 >> 5
break
5를 입력했습니다!
public class Test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~10사이의 정수를 입력해야합니다. 정상입력해야 종료됩니다");
while (true) {
int input = 0;
try {
System.out.println("정수입력 >> ");
input = sc.nextInt();
} catch (InputMismatchException e) {
sc.nextLine();//버퍼 공간에 있는 잘못 입력된 값을 제거하는 역할
System.out.println("정수를 입력해주세요");
}
if (1 <= input && input <= 10) {
System.out.println(input + "를 입력했습니다!");
break;
}else {
System.out.println("1~10사이로 입력해주세요!!!");
}
}
}
}
출력
1~10사이의 정수를 입력해야합니다. 정상입력해야 종료됩니다
정수입력 >> 정수
정수를 입력해주세요
1~10사이로 입력해주세요!!!
정수입력 >> 5
5를 입력했습니다!
[문제 2]
[10 1 2 0 -2] 배열리스트가 있습니다 //arraylist
사용자에게 정수를 입력 받습니다 ex) 1
100/배열리스트 1번째정수 의 결과를 출력해주세요!~~
100/10=10
사용자에게 정수를 입력받습니다. ex) 3
100/배열리스트 1번째정수 의 결과를 출력해주세요!~~
100/2=50
단, 100/0의 경우 0으로는 나눌수없습니다. 를 출력해주세요!~~
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> datas = new ArrayList<Integer>();
datas.add(10);
datas.add(1);
datas.add(2);
datas.add(0);
datas.add(-2);
int index;
double result;
while (true) {
try {
System.out.println("정수 입력");
index = sc.nextInt();
try {
result = 100 / datas.get(index - 1);
break;
} catch (ArithmeticException e) {
System.out.println(datas.get(index) + "으로는 나눌수없습니다.");
} catch (Exception e) {
System.out.println("해당 인덱스 요소는 없습니다");
}
} catch (InputMismatchException e) {
System.out.println("정수를 입력해주세요");
sc.nextLine();
}
}
System.out.println("100/" + datas.get(index - 1) + "=" + result);
}
}
정수 입력
정수
정수를 입력해주세요
정수 입력
6
해당 인덱스 요소는 없습니다
정수 입력
4
0으로는 나눌수없습니다.
정수 입력
1
100/10=10.0
'JAVA > 개념정리' 카테고리의 다른 글
MVC - var.2 , var.3 (0) | 2023.12.12 |
---|---|
개발 패턴 : MVC var.1 (0) | 2023.12.11 |
private (0) | 2023.12.07 |
컬렉션 프레임 워크- 배열리스트(향상된 배열) (0) | 2023.12.07 |
프로그래밍 기초 (0) | 2023.12.06 |