예외 및 예외 처리는 어디서 시작 되었습니까?
나는 .NET이 그것을 사용하는 방법을 좋아하고 C ++이 그것을 지원하는 방법을 좋아합니다 (그러나 불행히도 라이브러리는 리턴 코드를 사용하거나 대신 C로 작성됩니다). 나는 모든 새로운 언어에서 그 표준을 거의 알고 있지만 누가 그것을 처음부터 어디서 설계 했는가?
C ++이 그것을 사용하는 첫 번째 언어입니까? 나는 나이가 든 다른 것을 모른다.
예외 및 예외 처리는 어디서 시작 되었습니까?
나는 .NET이 그것을 사용하는 방법을 좋아하고 C ++이 그것을 지원하는 방법을 좋아합니다 (그러나 불행히도 라이브러리는 리턴 코드를 사용하거나 대신 C로 작성됩니다). 나는 모든 새로운 언어에서 그 표준을 거의 알고 있지만 누가 그것을 처음부터 어디서 설계 했는가?
C ++이 그것을 사용하는 첫 번째 언어입니까? 나는 나이가 든 다른 것을 모른다.
답변:
예외를 제기하고 잡는 것은 꽤 오랫동안있었습니다. 이 사이트는 PL / I에 예외가 도입되었다고 말합니다 : http://www.math.grin.edu/~rebelsky/Courses/CS302/98S/Outlines/outline.02.html
이 페이지에 따르면 1967 년에 작성되었습니다 (컴퓨터 언어 및 기능에 대한 포괄적이지만 포괄적 인 차트는 포함하지 않음) : http://community.borland.com/article/0,1410,22741,00.html
ADA, ALGOL, FORTRAN, ML-많은 언어가이 기술을 집어 들었습니다 ...]
여기 에서 인용했습니다 .
Wikipedia에는 PL / 1의 예외 처리에 대한 자세한 내용이 있습니다 . 이 페이지는 또한 PL / 1이 첫 번째임을 나타냅니다. 물론 이것은 과학적인 증거가 아닙니다 :-)
PL / 1을 직접 디자인 한 사람에 대해서는이 기사에서는 이름이없고 IBM의 다양한위원회 만 언급합니다.
호프, Mössenböck 및 Pirkelbauer (자신의 1997 논문에서 메타 프로그래밍 사용하여 처리 제로 오버 헤드 예외 존 B 굿 이너프의 1975 참조 예외의 개념은 70 년대 제안 된 것을 긍정을) 예외 처리 : 문제 및 제안 된 표기법 용지 통신의 ACM . 여기에서 콜백 등록에 대한 일반적인 아이디어로 현대적인 예외 처리를 통합하고 제안 된 표기법은보다 현대적인 속성 메타 데이터 사양과 비슷 try/catch
하지만 (또는 적어도 섹션 2)는 예외 처리 상태에 대한 훌륭한 개요입니다. 1970 년대 중반.
아마도 주목할 것은 Alef 의 raise/rescue
메커니즘 인데 , 우리가 Zeus의 Athena와 같은 Stroustroup의 눈썹에서 완전히 형성되었다고 생각하지 않도록 기본 형태의 블록 으로 볼 수 있습니다 .catch