C#의 DivideByZeroException이란?
System.DivideByZeroException은 어떤 수를 0으로 나누려고 할 때 발생하는 오류를 처리하기 위한 클래스입니다. C#에서는 try-catch 블록을 사용해 이 예외를 안전하게 잡아낼 수 있으며, 이를 통해 프로그램이 비정상적으로 종료되는 것을 방지하고 안정성을 높일 수 있습니다.
예제 코드
다음은 0으로 나누기 예외를 캡처하는 방법을 보여주는 전체 예제입니다.
using System;
namespace ErrorHandlingApplication {
class DivNumbers {
int result;
DivNumbers() {
result = 0;
}
public void division(int num1, int num2) {
try {
result = num1 / num2;
} catch (DivideByZeroException e) {
Console.WriteLine("Exception caught: {0}", e);
} finally {
Console.WriteLine("Result: {0}", result);
}
}
static void Main(string[] args) {
DivNumbers d = new DivNumbers();
d.division(25, 0);
Console.ReadKey();
}
}
}코드 설명
- try 블록: 나눗셈 연산(
result = num1 / num2)이 실행되는 부분입니다. - catch 블록: num2가 0이면 DivideByZeroException이 발생하며, 이 예외를 잡아 예외 정보를 콘솔에 출력합니다.
- finally 블록: 예외 발생 여부와 관계없이 항상 실행되어 현재까지의 결과값을 출력합니다.
실행 결과
위 예제에서는 division 메서드에 num1 = 25, num2 = 0 값을 전달합니다.
result = num1 / num2;
num2가 0으로 설정되어 있으므로 나눗셈을 수행하는 순간 DivideByZeroException이 발생하고, 미리 작성해 둔 catch 블록이 이 예외를 정상적으로 처리합니다. 또한 finally 블록은 예외와 무관하게 항상 실행되기 때문에 결과값도 함께 출력됩니다.