Microsoft MVP성태의 닷넷 이야기
전역 예외처리에 대해 질문있습니다. [링크 복사], [링크+제목 복사],
조회: 19589
글쓴 사람
다연아빠 (whee72 at google.com)
홈페이지
첨부 파일
 

성태님 안녕하십니까? 저는 지방에서 SI 업계에 종사하는 초보 개발자 입니다.
궁금한걸 못참아 글을 쓰게되었습니다.
메인 폼에서 발생하는 예외를 처리 방법을 바꾸고 싶은데
아무리 찾아보고 고민해도 방법을 몰라 글을 쓰게 되었습니다.
구글링을 하면 찾을 수 있는 일반적인 방법이고 저도 이렇게 쓰고 있었습니다.
----program.cs-------
        [STAThread]
        static void Main()
        {
            Application.ThreadException += new ThreadExceptionEventHandler(Form1_UIThreadException);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
        public static void Form1_UIThreadException(object sender, ThreadExceptionEventArgs t)
        {
            MessageBox.Show("Error");
        }

헌데 예외처리를 클래스 메소드에서 처리하는 방법으로 구현한 코드를 봤습니다.
SetControl메소드에서는 매개변수로 Control을 받구요.
컨트롤을 넘겨받아 어떻게 메인폼에서 발생하는 예외를 다 받을 수 있는지 도저히 모르겠습니다.
 
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ExceptionClass exClass = new ExceptionClass();
            Form1 frm = new Form1();
            exClass.SetControl(frm);
            Application.Run(frm);
        }

--------ExceptionClass.cs------------
   public class ExceptionClass
    {
        public void SetControl(Control ctrl)
        {
             //여기서 대체 무슨일이 일어나는 겁니까?
        }
    }


ps C# 6.0 책 잘봤습니다.
현역개발자라 6.0에서 추가된 내용만 볼려고 샀는데
기초부터 고급까지 설명을 잘 해놓으셔서 처음부터 정독했습니다.
좋은 글 감사합니다.








[최초 등록일: ]
[최종 수정일: 7/23/2017]


비밀번호

댓글 작성자
 



2017-07-23 01시29분
.NET Reflector 같은 디컴파일러 도구를 이용하면 SetControl에서 발생하는 것이 뭔지 알 수 있을 것입니다. 마법은 없기 때문에, 파악하실 수 있을 것입니다.
정성태
2017-07-24 02시03분
[다연아빠] 디컴파일러를 사용 할 수 없는 상황입니다 하하;;
[guest]
2017-07-24 02시56분
이런 경우에는 상상력이 과도한 문제일 수 있습니다. ExceptionClass.SetControl이 결국 내부적으로는 Application.ThreadException을 호출하는 걸 수도 있습니다. 그건 그렇고... 그렇다면 SetControl이 MainForm의 예외를 처리한다는 것은 어떻게 아신 건가요? 그냥 매뉴얼에 그렇게 써 있는 건가요?
정성태

... 61  62  63  64  65  66  67  68  69  70  71  72  73  [74]  75  ...
NoWriterDateCnt.TitleFile(s)
693장근배8/29/200715729매핑 구간이 열려 있습니다 [3]
692채영사랑8/29/200715187<질문> Ms stress tool 로 부하테스트중. [2]
690한귀순8/28/200716043ClickOnce 배포 추가질문 [4]
689clev...8/27/200715179SmartClient에서도 Exe COM과 같이 여러곳에서 변수 공유가 가능한가요? [2]
688한귀순8/24/200717796ClickOnce 배포 [1]
686이상욱8/21/200716530[질문] VS.NET 2008 - WCF 를 위한 디버깅 환경 개선 테스트 중에
687정성태8/21/200714632    답변글 [답변]: [질문] VS.NET 2008 - WCF 를 위한 디버깅 환경 개선 테스트 중에
685김동진8/19/200717121Vista에서 WSDL관련 IIs7세팅 질문입니다. [4]
683조스7/31/200716496스마트 클라이언트에서 다른 어셈블리(.NET component) 사용시 에러 [1]
682정해봉7/30/200717534비스타에서 CAS설정하기... 소스 첨부 [1]파일 다운로드1
684정해봉8/14/200718438    답변글 [답변]: 비스타에서 CAS설정하기... 소스 첨부 [3]
681박희진7/27/200716087caspol로 설정된 권한집합 웹에서 읽어올 수 있나요?? [1]
680창민이7/27/200716915COM+등록시 에러 부분 때문에.. [2]
678정해봉7/24/200715774비스타에서 CAS 설정하기... [1]
677첫사랑7/24/200714897SSL에 관한 질문입니다.
679정성태7/26/200715541    답변글 [답변]: SSL에 관한 질문입니다. [1]
676kiuk7/11/200715936웹폐이지상의 이미지 상태 저장을 하고싶습니다. [1]
675안연준7/6/200716434안녕하세요 ^^ [1]
674황태욱7/5/200718646utf-8 환경에서 파라미터 값에 한글이 있을 경우 깨지는 현상이.. [1]
672땡초7/4/200717701Remoting 객체를 호출하는 순간 Timer 의 Elapsed 이벤트가 멈추는 현상 [2]
670조성택7/3/200717109.Net에서 Timer클래스.. [1]
667홍석헌6/29/200716259[c#] 윈도우 활성화에 관한 질문
669정성태6/30/200716442    답변글 [답변]: [c#] 윈도우 활성화에 관한 질문
666오야6/25/200715494System.Transactions 에서 트랜잭션 실패를 체크하는 방법 [1]
665김성태6/20/200715002안녕하세요^^
668정성태6/30/200716129    답변글 [답변]: 안녕하세요^^
... 61  62  63  64  65  66  67  68  69  70  71  72  73  [74]  75  ...