본문 바로가기

컴퓨터/언어,프로그래밍

[C#] 예외처리 (try, catch, finally)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int[] test = { 1, 2, 3, 4, 5, 6 };
 
try
{
    test[10] = 20;
    // 예외를 확인할 코드들
}
catch (System.Exception ex)
{
    MessageBox.Show(ex.Message);
    // "인넥스가 배열 범위를 벗어났습니다."
    // 예외가 일어났을때
}
finally
{
    // 정상적으로 동작하였을때
}

잘못된 형변환, 잘못된 메모리 참조시 어디에서 문제가 일어났는지 쉽지 않습니다.

경우에 따라 정상적으로 동작하다가, 어느 순간에 다운되기 때문이죠.

그래서, 프로그래머는 항상 방어형 코드를 짜야 합니다.

그외에도 많은 예외가 일어날수 있는데, 프로그래머가 모두 예측해서

방어할수는 없습니다.


하지만, 언어에서 지원하는 방법으로 문제를쉽게 찾을수도 있습니다.

또한, 프로그램이 정지하기 전에 경고박스나, 특정값을 저장할 기회를 줄수도 있죠.


try{}에서 일어난 모든 예외들이 catch{}로 가게 됩니다.

그럴경우 메시지 박스를 띄워서 어디에서 잘못되었는지 확인할수 있습니다.

if보다는 좀더 진보된 예외처리를 할수가 있죠.


C#에서는 정상적으로 끝났을경우에 finally{}에 처리할 코드를 넣어줄수 있습니다.

이모든게 성능저하 없이 동작합니다.

출처 : http://www.masque.kr/index.php?mid=free&page=3&document_srl=222599

  

제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...