Try-Catch 기본
Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨. 59개 중 40번째.
Java의 try-catch 블록은 프로그램 실행 중 발생할 수 있는 예외(오류)를 처리하는 데 사용됩니다. 예외를 발생시킬 수 있는 코드는 try 블록에 작성하고, 오류 처리 코드는 catch 블록에 작성합니다.
다음은 try-catch 블록의 기본 구조입니다:
try {
// 예외를 발생시킬 수 있는 코드
} catch (ExceptionType e) {
// 예외를 처리하는 코드
}Integer.parseInt()를 사용해 실제로 어떻게 작동하는지 살펴보겠습니다. 이 메서드는 String을 정수로 변환합니다:
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}위 코드를 실행하면 출력은 다음과 같습니다:
Error: Not a valid number
하나의 try 뒤에는 여러 catch 블록이 올 수 있으며, 예외 유형마다 하나씩 배치할 수 있습니다. Java는 발생한 예외와 유형이 일치하는 첫 번째 블록을 실행합니다:
try {
int number = Integer.parseInt(text);
System.out.println(10 / number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
System.out.println("Error: Division by zero");
}챌린지
쉬움divideNumbers라는 이름의 메서드를 만들고 다음 세 가지 인수를 받도록 하세요:
- 첫 번째 숫자를 나타내는 String(
num1) - 두 번째 숫자를 나타내는 String(
num2) - 배열 인덱스를 나타내는 정수(
index)
메서드는 다음을 수행해야 합니다:
- 크기가 2인 배열을 생성합니다
- 주어진 인덱스에 num1을 정수로 변환한 값과 num2를 정수로 변환한 값의 나눗셈 결과를 저장합니다
- 주어진 인덱스의 값을 반환합니다
- 발생 가능한 모든 예외를 처리하고, 대신 해당 오류 메시지를 반환합니다
반환되는 메시지는 다음과 같아야 합니다:
NumberFormatException인 경우: "Error: Invalid number format"ArithmeticException인 경우: "Error: Division by zero"ArrayIndexOutOfBoundsException인 경우: "Error: Invalid array index"- 작업이 성공한 경우: 결과를 문자열로 반환합니다
직접 해보기
import java.util.Scanner;
public class Main {
public static String divideNumbers(String num1, String num2, int index) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String num1 = scanner.nextLine();
String num2 = scanner.nextLine();
int index = Integer.parseInt(scanner.nextLine());
System.out.println(divideNumbers(num1, num2, index));
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Java 컴파일러