C# Monitor를 사용할 때 try~finally를 쓰는 이유?

won983212의 이미지

C# 2주차 초보입니다.

static void run(object param)
{
Program pg = (Program)param;
Monitor.Enter(pg);
try
{
pg.number++;
}
finally
{
Monitor.Exit(pg);
}
}

위의 코드에서 왜 굳이 try~finally로 Monitor.Exit(pg)를 묶은 건가요?

static void run(object param)
{
Program pg = (Program)param;
Monitor.Enter(pg);
pg.number++;
Monitor.Exit(pg);
}

이렇게 작성하면 뭔가 문제가 생기나요?

나름대로 생각해본 이유는 오류가 발생하면 런타임 오류가 뜨면서 Exit이 안될 때를 방지해서 finally안에 넣은거 같은데..

catch블록이 없어도 오류가 잡혀서 결국은 finally가 실행되나요?

shint의 이미지

ㅇ_ㅇ;; 구글. 네이버에서 원하시는 내용이 보이는거 같습니다.

C# try finally 로도 검색해보시구요.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

won983212의 이미지

죄송합니다. 자료를 깊게 찾아보지 않고 질문부터 올렸네요;