C ++에서의 예외 처리는 try / throw / catch로 제한됩니다. Object Pascal, Java, C # 및 Python과 달리 C ++ 11에서도 finally
구문이 구현되지 않았습니다.
"예외 안전 코드"에 대해 언급 한 많은 C ++ 문헌을 보았습니다. Lippman은 예외 안전 코드가 Primer의 범위를 넘어서는 중요하지만 진보 된 어려운 주제라고 썼다. 이는 안전한 코드가 C ++의 기본이 아니라는 것을 암시하는 것으로 보인다. Herb Sutter는 그의 뛰어난 C ++에서 10 개의 챕터를 주제에 전념합니다!
그러나 "예외 안전 코드"를 작성하려고 할 때 발생하는 많은 문제는 finally
구문이 구현 되면 상당히 잘 해결 되어 프로그래머가 예외가 발생하더라도 프로그램을 복원 할 수 있도록 보장합니다 안전하고 안정적이며 누출이없는 상태, 리소스 할당 지점 및 잠재적으로 문제가있는 코드에 가깝습니다. 매우 숙련 된 Delphi 및 C # 프로그래머로서 try.를 사용합니다.이 언어로 된 대부분의 프로그래머와 마찬가지로 마침내 코드에서 광범위하게 차단됩니다.
C ++ 11에서 구현 된 모든 '벨과 휘파람'을 고려할 때 '마지막'이 아직 존재하지 않는다는 사실에 놀랐습니다.
그렇다면 왜 finally
구조가 C ++로 구현되지 않았습니까? 프로그래머가 '예외 안전 코드'를 작성하도록 돕는 것은 그리 어렵거나 진보 된 개념이 아니며 먼 길을 간다.
finally
C ++ 에는 왜 없는가 ? 그리고 그 대신에 어떤 예외 처리 기술이 사용됩니까?" 이 사이트에 대한 유효한 주제입니다. 기존 답변이 이것을 잘 다루고 있다고 생각합니다. "C ++ 디자이너의 finally
가치 가없는 이유는 무엇입니까?" 에 대한 토론으로 전환 " finally
C ++에 추가 해야합니까 ?" 질문에 대한 의견을 통해 토론을 진행하며 모든 답변이이 Q & A 사이트의 모델에 맞지 않습니다.