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 |
댓글