예외에 대하여

try~catch로 예외 받기

// try~catch를 이용하여 예외를 처리하는 방법
try
{
    // 실행 코드
    // 예외가 발생할 가능성이 있는 코드를 try 감싼다.
}
catch( 예외객체1 )
{
    // 예외가 발생했을 때의 처리
}
catch( 예외객체2 )
{
    // 예외가 발생했을 때의 처리
}

System.Exception 클래스

예외 던지기

// throw로 예외 던지는 방법
try
{
    throw new Exception("예외를 던집니다");
}
catch(Exception e)
{
    Console.WriteLine(e.Message);
}

// throw로 예외 던지는 예시
static void DoSomething(int arg)
{
    if ( arg < 10 )
    {
        Console.WriteLine("arg: {0}", arg);
    }
    else
    {
        throw new Exception("arg가 10보다 큽니다");
    }
}

static void Main()
{
    try
    {
        DoSomething(12);
    }
    catch(Exception e)
    {
        Console.WriteLine(e.Message);
    }
}

try~catch와 finally

// finally 사용 예시
try
{
    db.Open(); // 데이터베이스 커넥션
}
catch (Exception e)
{
    // 예외처리
}
finally
{
    db.Close(); // 예외가 발생하여 미처 해제하지 못한 자원은 finally에서 하면 안전하다.
}

사용자 정의 예외 클래스 만들기