Microsoft MVP성태의 닷넷 이야기
글쓴 사람
감사합니다.
홈페이지
첨부 파일
 

namespace ExceptionTest
{
    class Program
    {
        static void Func1()
        {
            Console.WriteLine("Func1");
            string str = null;
            str.ToString();
        }
        static void Func2()
        {
            Func1();
            Console.WriteLine("Func2");
        }

        static void Func3()
        {
            Func2();
            Console.WriteLine("Func2");
        }

        static void Func4()
        {
            Func3();
            Console.WriteLine("Func4");
        }


        static void Main(string[] args)
        {
            try
            {
                Func4();
            }
            catch (Exception ex)
            {
                Console.WriteLine("catch (Exception ex)");
                Console.WriteLine(ex.ToString());
                System.Threading.Thread.Sleep(5000);
                Environment.Exit(-1);
            }
        }
    }
}

위와 같은 테스트 코드인데 Func1()함수에서 예외 발생한 것은 미처리된 예외로 처리되어 비정상 종료되는 것으로 이해하고 있었는데
Func2() -> Func3() -> Func4() -> Main() 이와 같이 상위 함수로 계속 타고 올라가서 Main()함수의 try ~ catch 처리기에서
예외처리가 되네요.

그렇다면 콘솔프로그램같은 경우 별도의 쓰레드를 생성하지 않는다면 그냥 Main 함수 에서 try ~ catch 처리하면
Main()함수내의 모든 코드에서 발생되는 예외(단 모든 코드에는 try ~ catch 처리기가 없음)는 Main 함수의 try ~ catch에서 처리되는 건가요?

미리 감사드립니다.
수고하세요.








[최초 등록일: ]
[최종 수정일: 3/23/2022]


비밀번호

댓글 작성자
 



2022-03-23 10시20분
예, 맞습니다. 그리고 그와 관련해서 다음의 글도 보시면 도움이 되실 것입니다.

.NET 예외 처리 정리
; https://www.sysnet.pe.kr/2/0/316

또한, 위의 글에 "연관 글" 목록을 보면 WPF와 ASP.NET과 같은 특수한 사례에 대한 것도 있으니 함께 참고하시면 도움이 될 것입니다.
정성태
2022-03-23 10시22분
[감사합니다] 항상 도움주셔서 감사드리고 답변 감사합니다.
[guest]

1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5861다크파이썬3/21/202313080WPF를 사용하려고 하려고 도서 문의합니다. [2]
5860guest3/21/202311785인텔코어 i5 CPU와 스레드 [4]
5859guest3/21/202311121개발 일지 어떻게 관리하시나요? 이런 프로그램 없나요? [3]
5858김태원3/18/202311347안녕하세요! [5]
5857guest3/17/202311348귀도 반 로썸을 보고 [4]
5856guest3/17/202311969Form1_FormClosing에 closing time을 Sqlite 저장하는 법? [6]파일 다운로드1
5855욜로3/17/202310807C# 메타데이터에서 불러오는 참조 정의가 안됨 [1]
5854민성3/16/202311070안녕하세요 asp.net mvc using문 관련하여 [1]
5853pa3/16/202311428오피스 2016 업데이트 후 파일 출력 불가 [1]
5852guest3/16/202310670입력 foreach 검색/출력 foreach [3]
5851guest3/15/202311570foreach내 list변경 [10]
5850독서가3/14/202310552C#에서 동적dll 사용시 문의입니다. [4]파일 다운로드1
5849guest3/9/202311583C# wpf로 Web에서 구동되는 hts가능한가요? (노트북없고 스마트폰 없음) [4]
5848민성3/9/202310890도움 요청드립니다. [2]파일 다운로드1
5847guest3/7/202311180SQlike Like 구문 - 1시간째 인데 안되네요 [13]
5846Huuu...3/7/20239980웹 다운로드에 대한 고찰 [5]파일 다운로드1
5845guest3/7/202310263C# Split함수의 불친절함 [1]
5844까망이3/7/202310329c# 무료 디컴파일러는 어떤게 좋습니까? [1]
5843guest3/7/202310775판매 후 dll 등 에러 [5]
5842kr13/6/202310607publish 할 때 분석기 관련 dll 제외 [5]
5841guest3/3/202310854프로그램 판매 시 - Upgrade 버전 판매 [2]
5840joe3/2/202311462C# 클래스 라이브러리 수정 -> C++에서 참조시 함수 목록 갱신되지 않음. [4]파일 다운로드1
5839guest3/2/202311654윈도우 서비스 프로그램 - FORM 애플리케이션 감시서비스 [8]
5838랄랄라3/1/202310253event 사용 시 두 표현의 차이점이 있을까요? [1]
5837감사합니...2/28/202310788오라클 DB서버 접속관련 문의 드립니다.(Load Balancing, HA Events) [2]
5836박지범2/27/202310141static instance의 initialize 순서가 보장되나요? [6]
1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...