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 = 10 / 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라는 이름의 메서드를 생성하세요:

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

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

  1. 두 문자열을 정수로 파싱을 시도합니다
  2. 분자를 분모로 나누기를 시도합니다
  3. 결과를 정수로 반환합니다
  4. FormatException이 발생하면 "Invalid format"을 출력하고 0을 반환하도록 처리합니다
  5. DivideByZeroException이 발생하면 "Cannot divide by zero"를 출력하고 0을 반환하도록 처리합니다
  6. 그 외의 모든 예외는 "An error occurred"를 출력하고 0을 반환하는 일반적인 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실력 점검

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

논리 및 흐름의 모든 레슨