26.1 예외와 예외 처리
C# 프로그래밍에서 예외(exception)는 프로그램이 실행되는 동안 발생하는 에러(error)(오류)를 의미합니다. 코드를 잘못 작성하거나 기타 다른 이유로 발생한 예외는 프로그램을 강제적으로 종료하거나 틀린 결과가 나오는 식으로 발생합니다. 이러한 예외에 대한 대비로 예외 처리를 해야 합니다.
오류(에러)는 문법(컴파일) 오류, 런타임(실행) 오류, 알고리즘(논리) 오류 등으로 분류됩니다.
• 문법 오류(syntax error): 잘못된 명령어를 입력했거나 입력 실수로 발생하는 오류입니다. 문법 오류는 컴파일 오류라고도 하며, 대부분 C# 컴파일러가 잡아 줍니다. 문법 오류를 방지하려면 많은 예제를 접하면서 C#의 기초 문법을 확실하게 이해해야 합니다.
• 런타임 오류(runtime error): 프로그램을 만든 후 실행할 때 발생하는 오류입니다. 컴파일 과정에서는 발생하지 않고 실행할 때 발생하기에 많은 테스트를 진행하면서 잡을 수 있습니다.
• 알고리즘 오류(logic error): 주어진 문제에서 잘못된 해석으로 잘못된 결과를 초래하는 오류를 알고리즘 오류 또는 논리(로직) 오류라고 합니다. 문법 오류나 런타임 오류는 쉽게 발견할 수 있습니다. 하지만 알고리즘 오류는 처리 결과가 틀렸는데도 알 수 없는 경우가 많기 때문에 가장 해결하기가 어렵습니다. 알고리즘 오류를 해결하려면 다양한 도서를 읽고 코드를 분석하거나 많은 코드를 직접 만들어 보는 등 에러를 찾아내는 능력을 키워야 합니다.