Menu
Coddy logo textTech

여러 Catch 블록

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 블록은 가장 구체적인 Exception 유형부터 가장 일반적인 Exception 유형 순서로 배치하세요.

challenge icon

챌린지

쉬움

DivideNumbers라는 이름의 메서드를 만들고 두 개의 string 매개변수를 받도록 하세요:

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

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

  1. 두 문자열을 정수로 구문 분석합니다.
  2. 분자를 분모로 나눕니다.
  3. 결과를 정수로 반환합니다.
  4. FormatException을 처리하여 "Invalid format"을 출력하고 0을 반환합니다.
  5. DivideByZeroException을 처리하여 "Cannot divide by zero"를 출력하고 0을 반환합니다.
  6. 그 밖의 모든 예외는 일반 catch 블록으로 처리하여 "An error occurred"를 출력하고 0을 반환합니다.

직접 해보기

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실력 점검

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

논리 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 C# 컴파일러