예외(Exception)

00·2024년 12월 23일

C#

목록 보기
65/149

using System;

/*
예외(Exception):
프로그래머가 생각한 시나리오에서 벗어나는 사건.
예를 들어, 숫자만 입력해야 하는데 문자열을 입력하거나,
파일을 전송하고 있는데 네트워크가 다운되는 등의 사건 발생.

예외 처리(Exception Handling):
예외가 프로그램의 오류나 다운으로 이어지지 않도록 적절하게 처리하는 것.
*/

// 배열의 범위를 벗어나는 인덱스에 접근하여 IndexOutOfRangeException 예외를 발생시키는 모습.
namespace KillingProgram
{
class MainApp
{
static void Main(string[] args)
{
int[] arr = { 1, 2, 3 }; // 크기가 3인 정수형 배열 arr을 선언하고,
// {1, 2, 3}으로 초기화합니다.

        for (int i = 0; i < 5; i++) // i가 0부터 4까지 반복합니다.(for 루프 총 5번 실행됨)
        {
            Console.WriteLine(arr[i]); // arr[i]의 값을 출력합니다. 
                                       // i가 0, 1, 2일 때는
                                       // arr[0], arr[1], arr[2]의 값인 1, 2, 3이 출력됩니다.
                                       // i가 3, 4일 때는
                                       // arr[3], arr[4]에 접근하려고 시도하는데,
                                       // 이는 배열의 범위를 벗어나는 인덱스입니다.
                                       // 따라서 IndexOutOfRangeException 예외가 발생하고,
                                       // 프로그램이 비정상적으로 종료됩니다.

            // 즉, i가 '배열의 크기-1'을 넘어서면 예외를 일으키고 종료됩니다.
            // 이후의 코드들은 더 이상 실행되지 않습니다.
        }

        Console.WriteLine("종료");//  "종료"를 출력합니다.
                                // 하지만 IndexOutOfRangeException 예외가 발생하여,
                                // 프로그램이 비정상적으로 종료되었으므로
                                // 이 문장은 실행되지 않습니다.
    }
}

}

/*
출력 결과

1
2
3
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at KillingProgram.MainApp.Main(String[] args) in C:\Users\M\source\repos\Hello\MainApp.cs:line 14
*/

0개의 댓글