Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Numpy
- C
- C#
- JSON
- LIST
- Visual Studio
- Selenium
- YOLO
- 오류
- label
- error
- 채보
- pytorch
- ubuntu
- Linux
- pandas
- mysql
- 핑거스타일
- 명령어
- SSH
- Python
- C++
- 기타 연주
- pip
- paramiko
- OpenCV
- windows forms
- VS Code
- Docker
- 프로그래머스
Archives
- Today
- Total
기계는 거짓말하지 않는다
C# try, catch, finally Exception 처리 본문
프로그램 실행 중 발생하는 오류를 처리한다.
다음은 예제 코드이다.
private void ThreadStart()
{
try
{
argsThread = new Thread(new ParameterizedThreadStart(TempFunction));
argsThread.Start(tempArgs);
Thread.Sleep(interval);
}
}
catch (ThreadInterruptedException)
{
MessageBox.Show("thread interrupted", "확인");
}
catch (Exception e1)
{
MessageBox.Show(e1.Message + "\r\nLocation: ThreadStart", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
MessageBox.Show("Finally", "확인");
}
}
try 문 블록 안에서 오류가 발생하고 첫 번째 catch 문인 ThreadInterruptedException 예외와 일치하면 catch 문 블록 안의 코드가 실행되고 아니라면 두 번째 catch 문인 Exception에서 처리된다.
Exception은 모든 예외를 포함하므로 이 catch 문이 가장 앞에 있으면(ThreadInterruptedException catch 문이 두 번째라면) 다른 catch 문은 실행되지 않는다.
e1과 같은 변수를 선언하여 e1.Message로 간단한 오류 Message 확인이 가능하고, e1.StackTrace로 스택 트레이스 확인도 가능하다. (스택 트레이스는 개발 디버그 용으로 사용 권장, 배포 시 스택 트레이스는 사용하지 말 것)
finally 문은 예외와 관계없이 무조건 실행되어야 하는 코드를 작성한다.
'C#' 카테고리의 다른 글
C# Thread, Thread 매개변수 (0) | 2022.04.16 |
---|---|
C# Windows Forms 이벤트 등록 (0) | 2021.07.16 |
C# is, as, typeof 키워드 (0) | 2021.07.16 |
C# partial class (0) | 2021.07.15 |
C# Windows Forms MenuStrip Check (0) | 2021.07.13 |
Comments