◆ 런타임 에러와 예외 처리 |
프로그램 작성시에는 2가지 에러에 대비해야 합니다. 코드 작성시에 발견되는 컴파일에러와 프로그램이 실행될 때 나타나는 런타임에러 입니다. 컴파일 에러가 있으면 컴파일이 안되기 때문에 바로 발견해서 해결할 수 있어서 큰 문제가 없습니다. 문제는 런타임에러에 대한 처리인데 프로그램이 실행되어 일어날수 있는 모든 경우를 만들어 테스트를 해야 런타임에러를 해결할 수 있기 때문에 100% 해결하는 것은 불가능합니다. 런타임 에러는 보통 변수를 잘못 사용해서 발생하는데 이것을 막을 수 있는 게 '예외처리'라는 것입니다.
◆ 런타임 에러 발생 |
가장 많이 발생하는 런타임에러는 0으로 나눌 때 발생(Divided by Zero)하는 에러이다. 즉 어떠한 값을 0으로 나누었을 때 발생하는 에러이다.
|
C# .NET 에서 실제 코드를 적용해 보겠습니다.
private void button1_Click(object sender, EventArgs e) { int B = 0; int A = 10 / B; // B 가0이될경우런타임에러가발생한다. } |
Button1 을 클릭하게 되면 아래와 같은 런타임 에러가 발생합니다.
◆ 런타임 에러 처리 |
위와 같은 경우 if 문을 써서 아래처럼 처리할 수도 있습니다.
int B = 0; if(B ==0) { // B가0이라서무시하던지에러발생하던지다른조치를취한다. } else { int A = 10 / B;
} |
하지만 이것은 0으로 나눌 때 발생하는 에러만 처리하는 것이고 다른 에러에 대한 처리는 별도로 해줘야 합니다.
생각지도 못한 에러까지 처리하려면 아래처럼 try catch 를 사용하면 됩니다.
int B = 0;
try { int A = 10 / B; // B 가0이될경우런타임에러가발생한다. } catch (System.Exception ex) { MessageBox.Show(ex.Message,"예외발생"); // 0으로나누는런타임에러를포함해서모든에러를대비할수있다. } |
이제 어떠한 에러가 발생하더라도 런타임에러로 프로그램이 종료 되는 일은 없을 것입니다.
'스터디 > C#.NET:자료' 카테고리의 다른 글
C# 에서 리소스 문자열 사용하기 (Resource String ) (0) | 2010.12.14 |
---|---|
C# TextBox 전화번호만 받기(숫자, -만 받기) (0) | 2010.11.15 |
C# 다른 2개의 폼 – 체크 박스 이벤트 연결 (0) | 2010.11.15 |
객체 지향 (패키지화, 상속)에 대해서 (0) | 2010.11.15 |
다른 폼의 데이터 제어/변경하기 (0) | 2010.11.06 |
ListView 에 ComboBox 붙이기 (3) | 2010.10.28 |
C# 에서 string 관련 (0) | 2010.10.22 |
TreeView 이용하기 (1) | 2010.10.18 |
프로그램을 트레이 아이콘으로 보내기 (0) | 2010.10.11 |
FlagsAttribute Class (0) | 2010.10.09 |