C#

71.C# - 예외처리

Godffs 2009. 8. 17. 23:59
반응형

예외처리 Exception : 오류(Error)
컴파일(문법) 오류 : 잘못된 타이핑, 잘못된 문법이면 visual stdio가 바로 잡아줌
                         - 오류 줄일려면 많은 타이핑, 많은 학습
런다임(실행) 오류 : 실행시 발생  -많은 테스트
논리(잘못된분석) 오류(예외처리) : 잘못된 분석/설계/구현(오탈자)
                                              -많은 프로그램 작성 경험


Program.cs
using System;
public class 예외처리
{
    static void Main(string[] args)
    {
        //int c = 5 / 0; //1. 문법 오류
        //int a = 5; int b = 0; int c = a / b; //빌드하면 문법 오류없음
                                                               2. 실행시 애러(런타임 오류)

       
        //int c = args+bool; //논리상 나누기가 필요한데 더하기(+)를
                                                  해버렸다. 3.논리오류

       
        //Console.WriteLine("{0}", c); // try문에서 출력

        ExceptionHandling();
    }

    private static void ExceptionHandling()
    {
        //int a = 5; 예제1
        //int b = 0; 예제1
        try
        {
            //[1] 예외 발생할만한 구문 넣어놓는곳
            //int c = a / b; //예외가 발생할만한 구문은 try절에...예제1

            //예제2
            //throw (new Exception("내가 만든 에러")); //예외를 던지다(발생)
                                                      throw하면 무조껀 애러를 발생시킴

            //내가만든 에러 문장이 42줄에 ex.Message에 들어감

            //예제3
            //DivideByZeroException dbze =
                       new DivideByZeroException("뭐지?"); //애러형태 타입

            //throw dbze;

            //예제3을 한 줄로 표시
            throw new DivideByZeroException("왜그러징");
        }

        catch (Exception ex) //예외발생때 처리
        {
            //[2] 예외가 발생했을 때에만 샐행됨
            Console.WriteLine("예외발생 {0}", ex.Message);// 메세지 출력
            throw;
        }
       
        finally
        {
            Console.WriteLine("프로그램을 정상 종료합니다.");
        }
    }
}

결과화면


71. Exception .zip
다운로드

반응형