여러 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 유형 순서로 배치하세요.
챌린지
쉬움DivideNumbers라는 이름의 메서드를 만들고 두 개의 string 매개변수를 받도록 하세요:
numeratorStr: 분자를 나타내는 stringdenominatorStr: 분모를 나타내는 string
메서드는 다음을 수행해야 합니다:
- 두 문자열을 정수로 구문 분석합니다.
- 분자를 분모로 나눕니다.
- 결과를 정수로 반환합니다.
- FormatException을 처리하여 "Invalid format"을 출력하고 0을 반환합니다.
- DivideByZeroException을 처리하여 "Cannot divide by zero"를 출력하고 0을 반환합니다.
- 그 밖의 모든 예외는 일반 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);
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
직접 연습해 보세요: 온라인 C# 컴파일러