본문으로 바로가기

예외처리(Exception)

category 개발언어/c++ 2016. 6. 13. 12:25

* 예외처리(Exception)
프로그램을 실행하는 도중 발생한 오퓨를 처리하는 방법입니다. 기존의 프로그래밍을 언어가 가지고 있던 오류 처리 방식을 보안해서 체계적으로 오류를 해결하는 방식입니다. 특히 클래스를 위주로 하는 객체 프로그래밍에서 유용하게 쓰일수 있습니다.


예외처리 설명
Exception 실행 타임에 발생하는 모든 오류를 점검 합니다. 다른 모든 Execption 객체의 베이스
클래스 입니다.
IndexOutOfRangeException
배열 인덱스 값을 잘못 쓸 때 발생하는 예외 처리 입니다. 배열의 인덱스 범위를 벗어나는
경우에 발생합니다. ) arr[arr.Length+1]
NullReferenceException
실행 타임에 빈 객체를 참조 했을때 발생하는 예외 처리입니다.
) object 0=null; o.ToStrin();
AccessException
클래스 멤버를 사용 못하는 경우에 발생합니다.
ArithmeticException
계산을 하다가 오버플로나 언더플로가 나는 경우에 발생합니다.
ArrTypeMismatchException
배열에 적절하지 않은 데이터형 개체를 넣으려고 하는 경우에 발생합니다.
DivideByZeroException 0
나누기 오류가 발생한 경우입니다.
InvalidCastException
객체를 억지로 형 변환해서 사용하는 경우에 발생합니다.




throw

입력 값이나 변수 값이 잘못되었다고 판단하고 임의로 예외 처리한 예입니다. 변수 값이 0인 경우, 잘못된 값이라고 판단하고 오류처리 합니다. throw 문을 불러주며, 오류 메시지와 함께 Excepton 객체를 보내줍니다.

//throw 문을 이용한 예외 처리발생.
try
{
int val = 0
if (val == 0)
throw(new Exception("0
값은 허용되지 않습니다."));
}
catch(Exception e)
{
Console.WriteLine("
예외 처리 : " + e.Message);
}


C#
이 제공하고 있는 Exception 객체는 앞에 보인 예처럼 일반적인 오류 들을 다루는 예외 처리 객체 입니다. 코드에서 특정 오류를 처리해주려면, throw 문을 이용해서 예외 처리를 발생시키고 catch 문에게 넘겨주는 방식이 필요합니다.




finally

finally
문은 오류를 처리하는 것이 아니라, 실행을 마무리하기 위한 용도입니다. finally 문에 있는 코드는 정상적으로 싱행된 경우와 오류가 발생한 경우 모두 실행됩니다.
예를 들어 try 불록에서 파일을 사용한 경우, 정상적으로 파일을 읽은 경우와 파일을 읽다가 오류가 발생한 경우 모두 열린 파일을 닫아주어야 합니다. finally 불록에 파일을 닫는 코드를 넣어줍니다.

try
{
Console.WriteLine( "
정상적인 실행");
}
finally
{
//
오류 발생 여부에 상관없이 항상 실행됩니다.
Console.WriteLine("
마무리코드실행");
}





디버깅

디버그키 설명
F10
프로시저 단위로 실행합니다.
F11
한 단계식 실행하며, 실행할 코드가 메서드이면 메서드 안으로 들어갑니다.
Ctrl+F10
현재 커서가 위치한 곳까지 실행
F9
현재커서 위치에서 중단점(Brakpoint)추가 또는 취소