Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 기본 제공 예외와 예외 처리 키워드 완벽 정리

C# 예외 처리란?

예외(Exception)는 프로그램 실행 중에 발생하는 문제 상황을 의미합니다. 예를 들어 0으로 나누기, 존재하지 않는 파일 열기 등이 대표적인 예외 상황입니다. C#에서는 다음 네 가지 키워드를 사용하여 예외를 체계적으로 처리할 수 있습니다.

try

try 블록은 특정 예외가 활성화되는 코드 영역을 지정합니다. 이 블록 안에서 예외가 발생하면, 해당 예외는 대응되는 catch 블록으로 전달됩니다.

catch

catch 키워드는 발생한 예외를 잡아(catch) 처리하는 역할을 합니다. 예외 유형에 따라 여러 개의 catch 블록을 작성할 수 있으며, 각 블록에서 서로 다른 방식으로 예외를 처리할 수 있습니다.

finally

finally 블록은 예외가 발생하든 발생하지 않든 항상 실행되어야 하는 코드를 담습니다. 주로 파일 닫기, 메모리 해제 같은 리소스 정리 작업에 활용됩니다.

throw

throw 키워드는 프로그램에 문제가 나타났을 때 예외를 의도적으로 던져(발생시켜) 호출자에게 알리는 데 사용됩니다.

예제 코드

다음은 C# 프로그램에서 오류를 처리하는 방법을 보여주는 예제입니다. 0으로 나누기를 시도할 때 발생하는 DivideByZeroException을 catch 블록에서 처리합니다.

using System;
namespace MyErrorHandlingApplication {
   class DivNumbers {
      int result;
      DivNumbers() {
         result = 0;
      }
      public void myDivision(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.myDivision(5, 0);
         Console.ReadKey();
      }
   }
}

실행 결과

Result: 0

결과 분석

위 예제에서 myDivision(5, 0)을 호출하면 5를 0으로 나누려다 DivideByZeroException이 발생합니다. 이 예외는 catch 블록에서 잡혀 화면에 출력되며, 나눗셈 연산은 실패했기 때문에 변수 result는 생성자에서 초기화된 초기값인 0을 그대로 유지합니다. 마지막으로 finally 블록은 예외 발생 여부와 관계없이 항상 실행되므로 "Result: 0"이 출력됩니다.