package ex0727;
import java.util.Scanner;
public class Ex106_finally {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] ss = new String[3];
int idx;
String s;
try {
idx = 0;
System.out.println("문자열 입력[종료:입력하지 않고 엔터]...");
while( (s = sc.nextLine()).length() != 0 ) {
ss[idx++] = s;
System.out.print("문자열 입력 : "); // 예외 발생하면 실행 되지 않는다.
}
} catch (ArrayIndexOutOfBoundsException e) {
// ArrayIndexOutOfBoundsException : unchecked exception
// 배열의 첨자가 벗어난 경우 발생하는 예외
System.out.println("입력을 초과 했습니다...");
} finally {
System.out.println("예외 발생 여부와 상관 없이 실행 합니다.");
sc.close();
}
System.out.println("\n입력 문자열...");
for(String str : ss) {
System.out.println(str);
}
}
}
package ex0727;
import java.util.Scanner;
public class Ex107_finally {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b, c;
try {
System.out.print("두정수 ? ");
a = sc.nextInt();
b = sc.nextInt();
c = a / b;
System.out.println(a + "/" + b + "=" + c);
} finally {
System.out.println("예외발생 여부와 상관 없이 실행 됩니다.");
sc.close();
}
// 예외가 발생하면 실행하지 않는다.
System.out.println("end...");
}
}
package ex0727;
public class Ex108_finally {
public static void main(String[] args) {
// divide(10, 5);
// divide(10, 0);
divide(10, -5);
}
public static void divide(int a, int b) {
try {
if (b < 0) {
System.out.println("음수를 입력 했습니다.");
return;
}
int c = a / b;
System.out.println(a + "/" + b + "=" + c);
} catch (ArithmeticException e) {
System.out.println("0으로 나눌 수 없습니다.");
} finally {
// System.exit(0);// 프로그램 강제 종료를 만났을 때만 실행하지 않는다.
System.out.println("finally 블럭은 return을 만나도 실행된다.");
}
System.out.println("end...");
}
}
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0727_Ex111~116_throws : Checked, Unchecked ... (0) | 2021.07.27 |
---|---|
0727_Ex110_tryResource (0) | 2021.07.27 |
0727_Ex101~Ex105, Ex109_exception : 예외처리 (0) | 2021.07.27 |
0726_Ex07_interface : 인터페이스 (0) | 2021.07.26 |
0726_Ex06_interface : 인터페이스 (0) | 2021.07.26 |