이와 같은 프로세스를 매핑할 때, 물론 당신은 주저할 것입니다. 기존의 프로세스 맵은 모든 것이 계획에 따라 진행될 때 어떤 일이 일어나야 하는지 보여 주며, 모든 것이 잘못될 때 실제로 일어나는 일이 아닙니다. 그래서 사람들은 많은 예외를 가진 프로세스를 매핑하는 데 어려움을 가지고 있습니다. 프로그램이 예외를 throw하는 원인이 될 수있는 몇 가지 이유가있을 수 있습니다. 예: 프로그램에서 존재하지 않는 파일 열기, 네트워크 연결 문제, 사용자가 제공한 잘못된 입력 데이터 등 Java에서 선택 및 선택되지 않은 예외 : 나는 별도의 튜토리얼에서 이것을 자세히 다루었다. 그는 여러 운영 체제에서 경험을 가진이 진술을 뒷받침. 주요 예는 Cedar/Mesa: 그것은 좋아하고 재개를 사용하는 사람들에 의해 작성되었지만, 사용 10 년 후, 반 만 라인 시스템에 남아 재개의 단 하나의 사용이 있었다 – 그리고 그 문맥 조회했다. 이러한 컨텍스트 조회에 실제로 재개가 필요하지 않았기 때문에 이를 제거하고 시스템의 해당 부분에서 상당한 속도 증가를 발견했습니다. 10년 동안 재개가 사용되었던 모든 경우에 문제가 되고 더 적절한 설계가 이를 대체했습니다. 기본적으로, 재개의 모든 사용은 추상화 분리의 별도의 수준을 유지하는 실패를 나타냈다. [12] 예외 개체 포인터는 매크로에 의해 만들어집니다.

직접 선언할 필요는 없습니다. 설명이 좋습니다. 그러나 더 많은 예제를 제공하려고합니다. 예는 매우 쉽습니다. 프로그래밍 예제는 연습에 더 적합해야 합니다. 운영 체제는 IPC를 통해 프로그램에서 예외를 처리하는 시설을 제공할 수 있습니다. 일반적으로 프로세스 실행으로 인한 인터럽트는 운영 체제의 인터럽트 서비스 루틴에 의해 처리되며, 운영 체제는 해당 프로세스에 신호를 보낼 수 있으며, 이 경우 운영 체제에 신호 처리기를 등록하도록 요청할 수 있습니다. 신호가 발생하면 호출되거나 운영 체제에서 기본 작업(예: 프로그램 종료)을 실행하도록 할 수 있습니다. 대표적인 예로 SIGSEGV, 시그버스, 시길 및 시GFPE가 있습니다. 이 함수를 호출하여 사용자 고유의 코드에서 CDaoException 형식의 예외를 throw합니다. Java와 달리 C#과 같은 언어는 예외 형식을 선언할 필요가 없습니다. 한스피터 뫼센뵈크에 따르면, 호출할 수 있는 예외와 선택되지 않은(선택되지 않은) 예외를 구별하지 않으면 서면 프로그램이 더 편리하지만 덜 견고해집니다.

추적. [45] Kiniry (2006) 그러나 Java의 JDK (버전 1.4.1)는 많은 수의 확인되지 않은 예외를 throw합니다 : 에펠은 코드 의 140 줄마다 하나씩, 에펠은 4,600 줄마다 코드한 줄마다 던져지는 것과 함께 훨씬 더 아껴서 사용합니다.