◆ 런타임 에러와 예외 처리 |
프로그램 작성시에는 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으로나누는런타임에러를포함해서모든에러를대비할수있다. } |
이제 어떠한 에러가 발생하더라도 런타임에러로 프로그램이 종료 되는 일은 없을 것입니다.
- [2018/02/26] List 에서 고유값 얻기 ()
- [2015/05/22] C#, 아두이노 간의 WIFI 통신으로 LCD 제어 (4566)
- [2015/03/19] ERROR: APK path is not specified for module (7988)
- [2015/03/19] android studio default activity not found (8861)
- [2015/03/13] 항상 마지막에 추가한 TEXT 보이게 ()
- [2014/01/17] ComboBox Text 편집 안되게 (14491)
- [2014/01/08] if 문에서 여러개 비교할때 (25340) *3
- [2013/12/30] C++, C# 간단한 기능 비교 (12884)
- [2013/12/18] 3자리마다 ,(콤마) 찍기 (원화, 달러 표시) (15224)
- [2013/11/26] MSVCR110.dll , MSVCR100.dll오류 (17699) *2