이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 21123|회답: 0

[출처] 예외 및 예외 처리 (C# 프로그래밍 가이드)

[링크 복사]
게시됨 2015. 4. 12. 오후 10:22:03 | | |

C# 언어의 예외 처리 기능은 프로그램이 실행 중일 때 발생하는 예상치 못한 상황이나 특이한 상황을 처리하는 데 도움을 줍니다. 예외 처리는 try, catch, final의 키워드를 사용하여 특정 연산을 시도해 실패를 처리하는데, 이 연산들이 실패할 가능성이 있지만, 필요하다고 확신하고 나중에 리소스를 정리하고 싶다면 시도해볼 수 있습니다. 공통 언어 런타임(CLR), . NET 프레임워크나 서드파티 라이브러리 또는 애플리케이션 코드는 예외를 생성할 수 있습니다. 예외는 throw 키워드를 사용하여 생성됩니다.
많은 경우, 예외는 코드로 직접 호출된 메서드가 아니라 호출 스택의 더 아래쪽 메서드에 의해 발생될 수 있습니다. 이 경우 CLR은 스택을 확장하여 해당 예외 유형에 대한 캐치 블록을 포함하는 메서드가 있는지 확인하고, 그런 메서드를 찾으면 가장 먼저 발견한 캐치 블록을 실행합니다. 호출 스택 어디에서도 적절한 캐치 블록이 없으면 프로세스를 종료하고 사용자에게 메시지를 표시합니다.
이 예에서는 0으로 나누어지는 상황이 있는지 감지하는 방법을 사용합니다; 만약 오류가 있다면, 그 오류가 잡힙니다. 예외 처리가 없으면 이 프로그램은 종료되며 "DivideByZeroException Not Handled" 오류를 생성합니다.
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
코드 복사






이전의:C#은 문자열이 어떤 문자를 포함하는지 여부를 결정합니다
다음:웹사이트가 디스쿠즈 포럼 프로그램에서 만든 것인지 확인하세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com