나는 그가 이해하지 못하는 C#을 겪고있는 C++ 개발자입니다. 코드의 형식은 기본적으로 다음과 같습니다.이상한 흐름 제어 코드
bool method (params)
{
...
try
{
Do Some Stuff with some manual throws and some method calls;
}
catch (Exception e)
{
if (e is SomeSpecificTypeOfException)
throw e;
else
return false;
}
finally
{
Do Some More Stuff;
}
...
return true;
}
이 코드를 어떻게 해석해야합니까? 동료 개발자는이 유형의 사용법을 본 적이 없지만 "항상 메소드를 종료하기 직전에 항상 마침"이라고 말합니다. 그러면 catch를 다시 시작한 후에 마지막으로 e를 던지기 전에 catch/return이 false를 반환합니다. 마침내. 이 올바른지?
예, 'finally'는 (return 또는'throw '를 통해) 메소드를 종료하기 직전에 항상 실행됩니다. – Blorgbeard
다음은 예외 처리 문서로 연결되는 링크입니다. https://msdn.microsoft.com/en-us/library/ms173162.aspx – astidham2003
그런 식으로 다시 재사용하면 스택 추적이 깨질 수 있으므로주의해야합니다. 'throw; 스택 추적을 유지합니다. – Phaeze