Home C# 예외처리
Post
Cancel

C# 예외처리

Don’t Just Eat Exception


try ~ catch, Exception 위치

Let the exceptions happen at the lower levels and let them come up through until the top level or as high as you can go

The very top level or at least somewhere in the user interface

try ~ catch는 가능한한 제일 상단에(혹은 사용자 Interface, 사용자에게 어떤 에러인지 알려줘야 하는 경우), Excetion은 가능한한 제일 하단에서 일어나도록 구현.

Lower level에서 try ~ catch 하는 경우

소켓 열고 작업을 하는 도중 Exception 나는 경우 finally에서 무조건 닫아주기

1
2
3
4
5
6
7
8
9
10
11
12
 try{
    Socket.Open();
    Socket.DoSomethingWithSocket();
 }
 catch(Exception ex){
    Log.Information(ex.Message);
    Log.Information(ex.StackTrace);
    throw; // 상위로 예외 던지기
 }
 finally{
    Socket.Close();
 }

상위로 예외 던질 때 주의 해야할 점

1
2
3
4
catch(Exception ex){
    throw; // good 👍
    throw ex; // bad 👎: less stacktrace.
}

catch Exception에 순서가 있음

Exception이 제일 마지막에 와야함

1
2
3
4
try{}
catch(InvalidOperationException ex){}
catch(ArgumentException ex){}
catch(Exception ex){}
This post is licensed under CC BY 4.0 by the author.