C#에서 업무용 예외 직접 정의하기
이 레슨에서는 업무 오류를 나타내는 예외 타입을 직접 만들고 그 오류만 정확히 잡습니다.
소개
일반적인 Exception을 던지는 대신, 재고 부족처럼 업무 오류를 분명히 설명하는 이름의 예외를 정의할 수 있습니다. 그러면 코드가 더 읽기 쉬워지고, 오류 처리 코드는 처리해야 할 오류만 정확히 잡을 수 있습니다.
InsufficientStockException 클래스는 Exception을 상속하므로 일반 예외의 동작을 모두 가집니다. Reserve 메서드는 요청한 수량이 남은 재고보다 많으면 이 예외를 던집니다. catch 블록은 InsufficientStockException 타입만 잡아 Not enough stock 메시지를 출력합니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
class InsufficientStockException(string message) : Exception(message) { }
class Program
{
static void Reserve(int available, int requested)
{
if (requested > available) throw new InsufficientStockException("Not enough stock");
}
static void Main()
{
try { Reserve(2, 3); }
catch (InsufficientStockException error) { Console.WriteLine(error.Message); }
}
}
Not enough stock디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
- 첫 번째 잘못된 나이 입력한 나이를 검증하고, 프로그램이 중단되기 전에 첫 번째 잘못된 항목이 어디인지 알려줍니다. 쉬움
- 유효한 숫자 더하기 사람이 입력한 데이터는 지저분할 수 있습니다. 문자열 목록이 주어질 때, 오류 없이 `whole numbers`만 더하고 나머지는 무시하세요. 쉬움