try ~ catch로
처리하지
않는
곳에서
예외가
발생할
때
핸들링
할
수
있는
방법을
알아보자..
public Form1()
{
InitializeComponent();
//AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// ThreadException 핸들러를
등록한다
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
// UnhandledException 핸들러를
등록한다
Thread.GetDomain().UnhandledException += new UnhandledExceptionEventHandler(Application_UnhandledException);
}
// Windows어플리케이션용
예외
핸들러
public static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
ShowErrorMessage(e.Exception, "Application_ThreadException에
의한
예외
통지입니다.");
}
//콘솔·어플리케이션용
예외
핸들러
public static void Application_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = e.ExceptionObject as Exception;
if (ex != null)
{
ShowErrorMessage(ex, "처리되지
않은
예외!!!!");
}
}
public static void ShowErrorMessage(Exception ex, string extraMessage)
{
MessageBox.Show(extraMessage + " \n――――――――\n\n" +
"에러
내용\n" + ex.Message + "\n\n"
);
}
void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//Process.GetCurrentProcess().Close();
}
///Test
private void button1_Click(object sender, EventArgs e)
{
object aaa = null;
aaa.ToString();
}
'개발언어 > c++' 카테고리의 다른 글
프로세스간의 간단한 통신 (0) | 2016.07.18 |
---|---|
강제 메모리 해제 (0) | 2016.07.18 |
MFC로 작성한 프로그램에서 폴더선택 하기 (0) | 2016.07.18 |
ATL로 만든 클립보드뷰어 (0) | 2016.07.18 |
3D Software Rendering Engine 소스 (0) | 2016.07.18 |