Menu
Coddy logo textTech

Multiple Catch Blocks

Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 25번째.

다중 catch 블록을 사용하면 각 예외 유형에 대해 특정 코드로 서로 다른 유형의 예외를 처리할 수 있습니다.

기본 try 블록으로 시작하세요:

try
{
    int number = int.Parse("abc");
}

특정 예외에 대한 catch 블록을 추가:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

다양한 예외를 처리하기 위해 여러 catch 블록을 추가할 수 있습니다:

try
{
    int number = int.Parse("abc");
    int result = a10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

첫 번째 일치하는 catch 블록이 실행됩니다. catch 블록을 가장 구체적인 예외 유형부터 가장 일반적인 예외 유형 순으로 배치하세요.

challenge icon

챌린지

쉬움

DivideNumbers라는 이름의 메서드를 생성하세요. 이 메서드는 두 개의 string 매개변수를 받습니다:

  • numeratorStr: 분자를 나타내는 문자열
  • denominatorStr: 분모를 나타내는 문자열

이 메서드는 다음을 수행해야 합니다:

  1. 두 문자열을 모두 정수로 파싱하려고 시도하세요
  2. 분자를 분모로 나누려고 시도하세요
  3. 결과를 정수로 반환하세요
  4. FormatException을 처리하여 "Invalid format"을 출력하고 0을 반환하세요
  5. DivideByZeroException을 처리하여 "Cannot divide by zero"를 출력하고 0을 반환하세요
  6. 다른 모든 예외를 일반 catch 블록으로 처리하여 "An error occurred"를 출력하고 0을 반환하세요

치트 시트

여러 개의 catch 블록을 사용하면 각 예외 유형에 대해 특정 코드를 사용하여 다양한 유형의 예외를 처리할 수 있습니다.

특정 예외를 사용한 기본 try-catch:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

다른 예외를 위한 여러 catch 블록:

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

첫 번째 일치하는 catch 블록이 실행됩니다. catch 블록을 가장 구체적인 예외 유형부터 가장 일반적인 예외 유형 순서로 정렬하세요.

직접 해보기

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // 여기에 코드를 작성하세요
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 및 흐름의 모든 레슨