C#

예외처리

코다람쥐 2022. 1. 26. 15:33

1. try catch

c++과 같이 try와 catch를 사용하여 예외를 처리할 수 있다.

try의 내용에서 예외가 발생하면 catch에서 처리가 된다.

using System;
using System.Collections.Generic;

namespace CSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                int a = 5;
                int b = 0;
                int c = a / b;
            }
            catch(DivideByZeroException e)
            {

            }
            catch(Exception e)
            {

            }
            finally
            {

            }
        }
    }
}

위의 코드는 0으로 나누는 경우를 예외처리하는 코드이다.

DivideByZeroException은 0으로 나누는 경우를 예외처리하는 클래스이다.

그리고 Exeception은 모든 경우의 예외상황을 처리하는 클래스이다.

대부분의 예외상황은 c#에서 자체적으로 클래스로 정의되어 있다.

 

finally 키워드는 예외처리 후에 실행되는 코드를 적는 곳이다. DB나 파일정리 등에 쓰인다.

 

2. throw

나만의 예외클래스 정의하기

using System;
using System.Collections.Generic;

namespace CSharp
{
    class TestException : Exception
    {

    }
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                throw new TestException();
            }
            catch(TestException e)
            {

            }
        }
    }
}

예외클래스를 정의할 때는 반드시 Exception클래스를 상속 해야한다.

throw를 통해 예외클래스를 catch로 넘겨줄 수 있다.

 

사실 예외클래스를 직접 정의해서 사용하는 경우는 거의 없고 c#에서 정의해놓은 예외클래스만 알아도 된다.