사용자 지정 예외
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨. 66개 중 29번째.
사용자 지정 예외를 사용하면 애플리케이션의 고유한 오류 상황에 맞는 특정 예외 유형을 만들 수 있습니다.
사용자 지정 예외를 만들려면 상속하는 클래스를 Exception에서 정의하세요. 상속이란 새 클래스가 부모 클래스(이 경우 Exception)의 모든 동작을 자동으로 물려받으면서 기능을 추가하거나 사용자 지정할 수 있다는 의미입니다. class MyException : Exception 구문은 MyException이 Exception을 확장한다는 뜻입니다.
public class InvalidAgeException : Exception
{
public InvalidAgeException() : base("Age is not valid.")
{
}
public InvalidAgeException(string message) : base(message)
{
}
}: Exception: 내장된 Exception 클래스를 상속합니다.: base(...): 오류 메시지를 설정하기 위해 부모 Exception 생성자를 호출합니다.
첫 번째 생성자는 메시지가 제공되지 않았을 때 기본 메시지를 제공합니다.
두 번째 생성자는 호출자가 오류를 자세히 설명할 수 있도록 custom 메시지를 받습니다.
이제 필요할 때 custom 예외를 throw할 수 있습니다:
int age = -5;
if (age < 0)
{
throw new InvalidAgeException("Age cannot be negative.");
}이 코드가 negative age와 함께 실행되면, message가 "Age cannot be negative."인 custom exception을 throw합니다.
참고: 이 lesson의 연습 문제에서 validation functions는 입력이 valid일 때 true를 return하고, 그렇지 않을 때 custom exception을 throw합니다. 처리되지 않은 exception은 실행을 즉시 중지하므로, 테스트 케이스에서는 true return 경로만 확인하면 됩니다. invalid 입력에 대해서는 exception 자체가 관찰 가능한 결과이기 때문입니다.
챌린지
중급Exception에서 상속하는 InvalidTemperatureException이라는 custom 예외 클래스를 Create하세요. 다음을 포함해야 합니다:
- "Temperature is not valid." 메시지를 설정하는 기본 생성자
- custom 메시지를 받는 생성자
그런 다음 다음을 수행하는 checkTemperature이라는 메서드를 구현하세요:
- 섭씨 온도를 나타내는 정수 매개변수를 받습니다.
- 온도가 -273보다 작으면 "Temperature below absolute zero!" 메시지와 함께
InvalidTemperatureException을 발생시킵니다. - 온도가 valid하면 true를 반환합니다.
직접 해보기
using System;
class CheckTemperature
{
// 여기에 사용자 정의 예외 클래스를 만드세요
public static bool checkTemperature(int celsius)
{
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
직접 연습해 보세요: 온라인 C# 컴파일러