Blog Content

    티스토리 뷰

    71.C# - 예외처리

    반응형

    예외처리 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
    다운로드

    반응형

    'C#' 카테고리의 다른 글

    73.C# - 연산자 오버로드  (0) 2009.08.18
    72.C# - 리스트 제네릭 클래스 ( List Generic Class)  (0) 2009.08.18
    70.C# - 변환연산자  (0) 2009.08.17
    69.C# - 반복기  (0) 2009.08.17
    68.C# - 암시적으로 형식화된 로컬변수 (var)  (0) 2009.08.17

    Comments