int[] arr;

            int i;

            try

            {

                arr = new int[1];

                i = 2;

                arr[i] = 10; //오류발생!

            }

            catch (IndexOutOfRangeException ex)

            {

                Console.WriteLine($"에러 arr : {arr}, i : {i}");

            }

            finally

            {


            }


이런 패턴 문제점이 각 구간이 별도 스택이어서 지역변수를 날려먹으니까 로그쓰려면 스택바깥에 미리 선언해둬야하고 귀찮아진다는거임.


            trylabel

            {

                try: 

                    var arr = new int[1];

                    int i = 2;

                    arr[i] = 10; //오류발생!

                    break;

                catch IndexOutOfRangeException ex ioor:

                    Console.WriteLine($"에러 arr : {arr}, i : {i}");

                    break;

                catch: //그외의 경우

                    throw;

                finally:

                    break;

            }

스위치처럼 동일스택내 레이블로 구분하도록 구성하면 초기화 되지 않은상태더라도 접근이 가능함.


이런식으로 코드 작성 가능한 언어나 방법 소개좀