01. 다음 빈칸을 채우시오
① 예외 처리는 애플리케이션의 정상적인 흐름을 유지할 수 있도록 런타임 오류를 처리하는 강력한 방법 중 하나이다.
② 프로그램 실행 중에 예외를 일으킬 수 있는 코드를 try 블록으로 묶고 catch 블록으로 예외를 처리한다. fianlly 블록은 예외 발생 여부와 관계없이 실행된다.
③ throw 키워드는 예외를 명시적으로 발생시키는 데 사용하고, throws 키워드는 실행 중 발생 가능한 예외를 선언하는 데 사용된다.
02. 런타임 예외 클래스로 런타임을 발생시키는 것은 무엇인가?
① Error
② Unchecked Exception
③ Checked Exception
④ Stack Overflow Exception
03. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
public static void main(String[] args) {
int a = 2, b = 2, c = 3;
int d = a - b;
float e = c / d;
System.out.println(e);
}
}
① Arithmetic expression
② Null pointer exception
③ Number format exception
④ Array out of bound exception
04. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
public static void main(String[] args) {
int numbers[] = {1, 2, 3};
System.out.println(numbers[3]);
}
}
① 1
② 2
③ 3
④ 범위를 벗어난 배열 예외 발생
05. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
public static void main(String[] args) {
try {
String data = null;
if("Java".equals(data)) {
System.out.println("문자열은 Java이다");
}
} catch(Exception e) {
} finally {
System.out.println("finally 블록은 항상 실행됩니다.");
}
}
}
① 문자열은 Java이다
② null
③ finally 블록은 항상 실행됩니다.
④ data
06. 예외 처리에서 예외를 정의하는 데 사용되는 키워드로, 메서드 본문 내에서 예외를 발생시키는데 사용하는 것은 무엇인가?
① try
② throw
③ catch
④ throws
07. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
public static void main(String[] args) {
String data = null;
System.out.println(data.length());
}
}
① 인스턴스화된 예외가 발생한다
② 인터럽트된 예외가 발생한다
③ 널 포인터 예외가 발생한다
④ 범위를 벗어난 배열 예외가 발생한다.
08. 다음 프로그램의 실행 결과는 무엇인가?
public class MyClass {
public static void main(String[] args) {
try {
int a = 10, b = 20, c = 30;
System.out.println(c - (a + b));
} catch (Exception e) {
} finally {
System.out.println("예외 발생");
}
}
}
① 30
② 0
③ c-(a+b)
④ 0, 예외 발생
09. 다음 프로그램의 실행 결과를 작성하시오.
import java.util.Scanner;
public class MyClass {
public static int divide(int num1, int num2) {
int result;
try {
result = num1 / num2;
} catch (ArithmeticException e) {
System.out.println("divide() 메서드 오류");
throw e;
}
return result;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("첫 번째 숫자를 입력하세요: ");
int num1 = scanner.nextInt();
System.out.println("두 번째 숫자를 입력하세요: ");
int num2 = scanner.nextInt();
try {
int result = divide(num1, num2);
System.out.println("나눗셈 결과: " + result);
} catch(ArithmeticException e) {
System.out.println("예외 처리 발생");
}
}
}
-> divide 함수내에서 산술식 오류가 발생하면 "divide() 메서드 오류"를 출력하고 산술식오류를 발생시킴.
main메서드 내의 try - catch문으로 인해 throw e로 발생시키는 산술식 오류를 받아내 "예외 처리 발생"을 출력함
10. 다음 프로그램의 실행 결과를 작성하시오.
public class MyClass {
static boolean isCapitalized(String s) {
if (s == null) {
throw new NullPointerException();
}
if (s.equals("")) {
return true;
}
String first = s.substring(0, 1);
String rest = s.substring(1);
return (first.equals(first.toUpperCase()) && rest.equals(rest.toLowerCase()));
}
public static void main(String[] args) {
String str_not_null = "Java";
String str_is_null = null;
System.out.println(str_not_null + "가 대문자인가? " + isCapitalized(str_not_null));
System.out.println(str_is_null + "가 대문자인가? " + isCapitalized(str_is_null));
}
}
-> 입력값이 null이면 NullPointerException을 발생시킴. = main메서드의 2번째 println문에서 예외 발생
'IT CookBook JAVA 마스터 > 연습문제' 카테고리의 다른 글
IT CookBook JAVA 마스터 Ch.06 연습문제 (0) | 2024.04.13 |
---|---|
IT CookBook JAVA 마스터 Ch.13 연습문제 (0) | 2023.12.11 |
IT CookBook JAVA 마스터 Ch.10 연습문제 (0) | 2023.12.11 |
IT CookBook JAVA 마스터 Ch.09 연습문제 (0) | 2023.12.11 |
IT CookBook JAVA 마스터 Ch.08 연습문제 (0) | 2023.12.11 |