디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

러빨러도 울고 갈, Ada 예외 처리, 6.4 예외 전파

나르시갤로그로 이동합니다. 2025.09.16 02:25:14
조회 40 추천 0 댓글 0

6.4 예외 전파

예외가 발생했을 때 현재 실행 중인 블록에 해당 예외를 처리할 수 있는 when 절이 없으면, 예외는 소멸하지 않고 자신을 호출한 코드로 전파됩니다. 이처럼 예외가 호출 스택을 거슬러 올라가는 과정을 예외 전파(exception propagation)라고 합니다.

전파 과정

  1. 서브프로그램이나 블록문(declare ... begin ... end) 실행 중 예외가 발생합니다.
  2. 해당 블록의 정상적인 실행은 즉시 중단됩니다.
  3. Ada 런타임은 해당 블록의 exception 처리 구역에서 발생한 예외와 일치하는 when 절을 찾습니다.
  4. 만약 일치하는 when 절이 없으면 (또는 exception 구역 자체가 없으면), 예외는 전파됩니다.
  5. 전파된다는 것은, 현재 블록을 호출했던 지점에서 동일한 예외가 다시 발생하는 것을 의미합니다. 이 과정은 적절한 예외 처리기를 만나거나, 태스크의 최상위에 도달할 때까지 반복됩니다.

예시

다음 코드에서 procedure_bConstraint_Error에 대한 처리기가 없습니다. 따라서 예외가 발생하면, procedure_b를 호출한 procedure_a로 예외가 전파되어 그곳의 처리기가 실행됩니다.

with Ada.Text_IO;

procedure main_example is

  -- procedure_b를 미리 선언하여 procedure_a에서 호출 가능하게 함
  procedure procedure_b;

  -- procedure_b를 호출하는 procedure_a의 구현
  procedure procedure_a is
  begin
    Ada.Text_IO.put_line ("procedure_b를 호출합니다...");
    procedure_b;
  exception
    when Constraint_Error =>
      Ada.Text_IO.put_line ("procedure_a에서 예외가 처리되었습니다.");
  end procedure_a;

  -- 예외를 발생시키는 procedure_b의 구현
  procedure procedure_b is
    x : Integer := 0;
    y : Integer;
  begin
    Ada.Text_IO.put_line ("procedure_b 내부에서 예외를 발생시킵니다...");
    y := 1 / x;
    -- 위의 나눗셈에서 예외가 발생하므로 이 줄은 실행되지 않음
  end procedure_b;

begin
  -- 프로그램 실행을 시작하기 위해 procedure_a를 호출
  procedure_a;
end main_example;

전파의 규칙

예외 전파에는 다음과 같은 두 가지 규칙이 적용됩니다.

1. 선언부에서의 예외

서브프로그램이나 블록의 선언부(예: isbegin 사이)에서 예외가 발생하면, 해당 블록의 exception 처리기는 이를 처리하지 못하고 즉시 상위 실행 문맥으로 전파됩니다.

procedure example is
  -- 선언부에서 Constraint_Error 발생
  n : Positive := 0;
begin
  null;
exception
  -- 이 처리기는 선언부의 예외를 처리할 수 없음
  when Constraint_Error =>
    Ada.Text_IO.put_line ("이 메시지는 출력되지 않습니다.");
end example;

2. 태스크에서의 예외

처리되지 않은 예외가 태스크(task)의 최상위 레벨까지 전파되면, 더 이상 다른 곳으로 전파되지 않고 해당 태스크가 종료됩니다. 자세한 내용은 태스크를 다루는 8.1절에서 다시 설명하겠습니다.




https://nimfsoft.art/ko/books/ada-programming/#64-%EC%98%88%EC%99%B8-%EC%A0%84%ED%8C%8C


 


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 군대 예능 출연해 줬으면 싶은 여자 스타는? 운영자 25/09/15 - -
AD 가전디지털, 액세서리 SALE 운영자 25/09/12 - -
2890522 ㅆㅇㅆ 멘탈 나갈때 행동패턴이 뻔함 ㅋㅋㅋㅋ [2] ㅇㅇ(211.234) 12:41 55 4
2890521 이번에 외주받은게 친구일이라 밤 얻어먹는중 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 12:40 37 0
2890520 조나단 느그홍 나중에 나라 경기 호황이면 그때 장관하자 [1] 뒷통수한방(1.213) 12:37 16 0
2890519 프롬프트허브? 프롬프트마켓? 만들어볼건데 꼬치의달인갤로그로 이동합니다. 12:33 24 0
2890518 ㅈㅇ세번함 [2] 꼬치의달인갤로그로 이동합니다. 12:32 44 0
2890517 욕을 할거면 그냥 배설을 하지 말고 상황설명을 해라 [1] 프갤러(110.8) 12:31 32 2
2890516 히히히 나는 볼드오이 너희들을 무찌르러 왔다 볼드오이(121.151) 12:30 18 0
2890515 1찍 영포티 [3] ♥냥덩이♥갤로그로 이동합니다. 12:22 34 0
2890514 무능극좌 폭동배급견 4050 범죄자세대 [1] ♥냥덩이♥갤로그로 이동합니다. 12:18 22 0
2890512 오락해요.. [6] 뿍뿍이(121.151) 12:10 43 0
2890510 오락해요 뿍뿍이(121.151) 12:01 25 0
2890509 개쓰래기들은 도대체가 [2] 프갤러(49.165) 12:00 42 0
2890507 ㅆ벤져스 어셈블 ㅇㅇ(211.234) 11:50 27 3
2890505 121.139 힘내라 [4] 류류(118.235) 11:44 45 1
2890504 영포티 이 쓰래기들은 [5] 프갤러(49.165) 11:40 58 0
2890503 121.139 관상 보이누 ㅋㅋ [1] 류류(118.235) 11:38 44 2
2890502 121.139 긁히니까 꼬박 꼬박 비추다네 ㅋㅋ 류류(118.235) 11:37 33 1
2890501 조나단 느그홍 나중에 나라 경기 호황이면 그때 장관하자 뒷통수한방(1.213) 11:37 14 0
2890500 121.139 = ㅆㅇㅆ잖아 ㅇㅅㅇ [1] 류류(118.235) 11:36 43 1
2890499 121.139 긁혀서 비추하누? [1] 류류(118.235) 11:32 45 3
2890498 ㅆㅇㅆ 류류같은 글에도 추천하는거 보면 [10] 프갤러(121.139) 11:25 115 4
2890497 23세에 가진것도, 아는것도 없는게 문제가 될까요?? ㅇㅇ(223.38) 11:25 26 0
2890496 121.139 그만나대라 ㅇㅅㅇ [2] 류류(118.235) 11:12 72 4
2890495 ㅆㅇㅆ 루도그담당 다중이질은 기괴한게 [1] ㅇㅇ(211.234) 10:57 63 5
2890494 VB6 에서 기본 회사 이름 바꾸는 방법 아는사람 ㅇㅇ(125.134) 10:55 22 0
2890493 [대한민국] 미의회 연설 - 한국 민주주의 위기 프갤러(121.172) 10:49 17 0
2890492 다중이로 털리니까 본체로 정신승리 ㅋㅋㅋㅋ ㅇㅇ(211.234) 10:39 47 6
2890490 121.139 왜 쟤 상대해주냐 쟤 열등감덩어린데 [3] ㅆㅇㅆ(124.216) 10:29 106 0
2890489 청년들은 좇센 보다 북한 중국에서 태어나는게 난이도 더 쉬움 타이밍뒷.통수한방(1.213) 10:27 37 0
2890488 이재명 탄핵 ♥냥덩이♥갤로그로 이동합니다. 10:16 20 1
2890487 루도그 재 왜저러냐 ㅋㅋ [2] 프갤러(121.139) 10:16 79 4
2890486 너넨 이거 보면서 안타깝다는 생각 들지않냐? [13] 루도그담당(58.239) 10:10 167 0
2890485 프갤을 이해해보자 ㅇㅇ갤로그로 이동합니다. 10:05 33 0
2890484 올해 초에 게임 8월에 꼭 출시한다고 발악하지만 [1] ㅇㅇ(211.234) 10:05 33 2
2890483 잔 다 ㅇㅅㅇ// [3] 헤르 미온느갤로그로 이동합니다. 10:04 20 0
2890482 먹어써? 뿍뿍이(121.151) 10:00 18 0
2890481 푸탄한테 개털리는 찐따북괴 ♥냥덩이♥갤로그로 이동합니다. 10:00 29 0
2890480 루도그담당? ㅆㅇㅆ? 둘이 참 재밋는 새끼들임 ㅋㅋ [11] 프갤러(121.139) 09:48 144 4
2890479 조나단 느그홍 나중에 나라 경기 호황이면 그때 장관하자 뒷통수한방(1.213) 09:46 12 0
2890478 AI 경쟁서 한국 존재감…미중 이어 세계 3위 발명도둑잡기(118.216) 09:37 22 0
2890477 졸린데 더 잘까 [2] 루도그담당(58.239) 09:34 29 0
2890476 한국에서 열심히살 필요가없는 이유 jpg [2] 운동의 계절, 투운(1.213) 09:30 41 0
2890475 어린이세상 [1] 뿍뿍이(121.151) 09:26 29 0
2890474 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 09:25 20 0
2890473 지피티를 오래 쓸수록 주로 업무용에서 개인용으로 더 많이 활용하게되더라 [2] ㅆㅇㅆ(124.216) 09:17 43 0
2890472 지피티 내부 데이터를 활용한 최초 경제학 연구 나왔더라 [8] ㅆㅇㅆ(124.216) 09:10 143 6
2890471 세계 최고 명차도 아닌데... 놀라운 컨버터블 더위드카갤로그로 이동합니다. 09:06 39 0
2890470 121.139 좀 보는데 쟤 그냥 뭐 기초도 잘모르던데 [3] ㅆㅇㅆ(124.216) 09:05 54 0
2890469 10년 뒤 190조 대박 '이것'에 세계가 주목 더위드카갤로그로 이동합니다. 08:56 41 0
2890468 벤츠의 혁신, 주유소의 운명은? 더위드카갤로그로 이동합니다. 08:45 44 0
뉴스 김희선, 송혜교와의 두터운 우정 과시...“착하고 사랑스러운 능력 부자 혜교” 디시트렌드 09.19
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2