본문 바로가기
C#/기본

try catch 예외처리

by ddanss 2025. 4. 12.
728x90

try : 예외가 발생할 가능성이 있는 코드를 감싸는 블록
catch : 예외가 발생했을 때 실행되는 블록
finally : 예외 발생 여부와 상관없이 항상 실행되는 블록, 주로 자원정리에 사용됨
throw : 예외를 발생시키거나 다시 던질때 사용

 

 

object obj = "abc";

string Error()
{
    try
    {
        double a = (double)obj;
    }
    catch(Exception ex)
    {
        return "Exception 예외 발생";
    }
    finally
    {
        obj = null;
    }
    return "";
}

string errorMessage = Error();
Console.WriteLine($"errorMessage: {errorMessage}, obj: {obj}");
Console.ReadKey();

 

obj가 double로 형변환 될 수 없어서 catch로 감

catch로 갔으니 Exception 예외 발생을 return 해줌

그러므로 errorMessage 에는 위에 return한 문자열이 들어감

obj는 finally가 마지막에 실행됐으므로 null.

 

 

 

 

 

 

 

Custom Excetion

try
{
    throw new CustomException("커스텀 에러 발생", 500);
}
catch (CustomException ex)
{
    Console.WriteLine($"Message: {ex.Message}, ErrorCode: {ex.ErrorCode}");
}

Console.ReadKey();

class CustomException :Exception
{
    public CustomException(string message, int errorCode) : base(message)
    {
        ErrorCode = errorCode;
    }

    public int ErrorCode { get; }
}

1. try문 들어감

 

2. base(message)

- base :

- - - - 부모 클래스의 생성자를 호출할 때

- - - - 부모 클래스의 메서드나 속성에 접근할 때

자바나 자바스크립트에서 super랑 같은거네

 

3. ErrorCode = errorCode;

 

4. throw

예외 처리 던지고

5. catch

예외처리 던진거 catch가 바로 잡고

6. Console.WriteLine

출력 라인 가서

7. ErrorCode get

에러코드 가져오고

8. Console.WriteLine

출력

반응형

'C# > 기본' 카테고리의 다른 글

Program.cs  (0) 2025.05.07
launchSettings.json  (0) 2025.05.06
appsettings.json과 appsettings.Development.json  (0) 2025.05.06
.csproj 파일  (0) 2025.05.06
비동기  (0) 2025.04.15

댓글