◆ 런타임 에러와 예외 처리

 

프로그램 작성시에는 2가지 에러에 대비해야 합니다. 코드 작성시에 발견되는 컴파일에러와 프로그램이 실행될 때 나타나는 런타임에러 입니다. 컴파일 에러가 있으면 컴파일이 안되기 때문에 바로 발견해서 해결할 수 있어서 큰 문제가 없습니다. 문제는 런타임에러에 대한 처리인데 프로그램이 실행되어 일어날수 있는 모든 경우를 만들어 테스트를 해야 런타임에러를 해결할 수 있기 때문에 100% 해결하는 것은 불가능합니다. 런타임 에러는 보통 변수를 잘못 사용해서 발생하는데 이것을 막을 수 있는 게 '예외처리'라는 것입니다.

 

 

◆ 런타임 에러 발생

 

가장 많이 발생하는 런타임에러는 0으로 나눌 때 발생(Divided by Zero)하는 에러이다. 즉 어떠한 값을 0으로 나누었을 때 발생하는 에러이다.

 

int A = 10/B; // B 가 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으로나누는런타임에러를포함해서모든에러를대비할수있다.

}

 

이제 어떠한 에러가 발생하더라도 런타임에러로 프로그램이 종료 되는 일은 없을 것입니다.


출처: http://whiteat.com/39553 



+ Recent posts