디시인사이드 갤러리

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

갤러리 본문 영역

러스트도 울고 간, Ada 6.5 예외 전파

나르시갤로그로 이동합니다. 2025.09.20 20:28:48
조회 29 추천 0 댓글 0

6.5 예외 전파

예외가 발생했을 때 현재 실행 중인 블록에 해당 예외를 처리할 수 있는 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절에서 다시 설명하겠습니다.


ㅆㅇㅆ은 나에 대한 비방, 모욕 및 명예훼손을 중단하라.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 센터해도 될 것 같이 비주얼 물오른 아이돌 멤버는? 운영자 25/09/22 - -
이슈 ‘용원게이’를 넘어 배우 장용원으로 운영자 25/09/23 - -
AD 프로게이머가 될테야!! 운영자 25/09/12 - -
2890862 일본 마코 근황 발명도둑잡기(118.216) 09.21 50 0
2890861 실시간베스트 주한미군 분담글 댓글에 인공지능 심리공작 댓글 분석 필요 발명도둑잡기(118.216) 09.21 21 0
2890860 주말에도 디씨 하는 사람 발명도둑잡기(118.216) 09.21 21 0
2890859 나님 작사 ♥냥덩이♥갤로그로 이동합니다. 09.21 40 0
2890858 걸스데이 유라, 람보르기니 몰다 대형 사고…"한문철TV에 제보하지 마세요 [1] 발명도둑잡기(118.216) 09.21 36 0
2890857 애널 푹 잘 쉬어ㅓㅅ낭 ♥냥덩이♥갤로그로 이동합니다. 09.21 34 0
2890856 낼부터 다시 시작이군 ♥냥덩이♥갤로그로 이동합니다. 09.21 34 0
2890855 Google Gemini l ADP 우찬&타잔이 준비한 미리 크리스마스 발명도둑잡기(118.216) 09.21 34 0
2890854 사기피해자를 위한 힐링노래 발명도둑잡기(118.216) 09.21 21 0
2890853 증권 자동매매 앱 사업성 검토 보고서 나르시갤로그로 이동합니다. 09.21 60 0
2890852 증권 자동매매 앱이라.. ㅎㅎ 나르시갤로그로 이동합니다. 09.21 31 0
2890848 흠.. ♥냥덩이♥갤로그로 이동합니다. 09.21 26 0
2890847 오락실가면 [1] 배구공(119.202) 09.21 39 0
2890844 Ai영상 잼땅 ♥냥덩이♥갤로그로 이동합니다. 09.21 36 0
2890842 자주보는 영상 배구공(119.202) 09.21 22 0
2890840 케잌해줘 배구공(119.202) 09.21 26 0
2890836 ㅎㅂㅈㅇ ai짤 방금가져옴 배구공(119.202) 09.21 51 0
2890834 점심 저녁 발명도둑잡기(118.216) 09.21 27 0
2890833 이 멤버로 스토리 드래곤 보물 모으기 (#비전 벽타기)로 클리어할 예정 넥도리아(220.74) 09.21 25 0
2890830 05년생 안랩 정직원 [2] 프갤러(118.235) 09.21 54 0
2890829 디즈니 향한 업계 보이콧 움직임 발명도둑잡기(118.216) 09.21 34 0
2890822 나님 누웅⭐+ ♥냥덩이♥갤로그로 이동합니다. 09.21 28 0
2890820 국제 해적처럼 말하기 날 [3] 발명도둑잡기(118.216) 09.21 34 0
2890818 아마 다음 노트북은 갤럭시북으로 갈듯 프갤러(61.79) 09.21 78 0
2890817 나는 처녀가 좋은데 일녀보다 당연히 한녀가 나음.. [3] ㅆㅇㅆ(124.216) 09.21 100 0
2890816 나님 애널 일찍 주무실게양⭐+ ♥냥덩이♥갤로그로 이동합니다. 09.21 32 0
2890815 나는 성병 1위 매독 스시녀보다는 한녀가 좋음... ㅆㅇㅆ(124.216) 09.21 55 0
2890814 이미지처리쪽 진로 잘아는 분 계신가요? 프갤러(211.248) 09.21 37 0
2890813 살고싶지 않다 사는게 더 이상 귀찮다 [1] 메쿠이료갤로그로 이동합니다. 09.21 41 0
2890812 ■노트북 이정도면 개발용으로 어떰? [4] ㅇㅇ갤로그로 이동합니다. 09.21 75 0
2890810 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 09.21 27 0
2890809 [공지] [귀인환등초] [WhatIf] 환상초한전 리스트 프갤러(121.172) 09.21 45 0
2890808 ㅆㅇㅆ햄 나 1년뒤에 opengl과제 의뢰 되나 ㅇㅅㅇ [2] 프갤러(223.38) 09.21 68 0
2890807 퇴근길에 느끼는거지만 결혼하고싶다 [3] ㅆㅇㅆ찡갤로그로 이동합니다. 09.21 72 0
2890805 cppreference를 어케 혼자 공부하라는거임 [3] 프갤러(223.38) 09.21 65 0
2890801 갤럭시북도 트랙패드 맥북만큼 좋냐 [1] 프갤러(61.79) 09.21 87 0
2890797 맥북 고민중인데 프갤러(39.117) 09.21 49 0
2890794 저녁 머먹찌? [3] ♥냥덩이♥갤로그로 이동합니다. 09.21 65 0
2890793 조심 프갤러(211.32) 09.21 53 0
2890792 인생 나름 재밌지않냐?? 힘들때도 있지만, 나름대로 즐거움 ㅇㅇ(223.38) 09.21 31 0
2890790 심심해서 컴터방 정리했다 [8] hiya갤로그로 이동합니다. 09.21 87 0
2890787 조선족이 한국서 일하면 일자리 뺏는다고 하는데 재미교포가 [3] 발명도둑잡기(211.234) 09.21 53 0
2890786 전 인강이 집중이 힘들고, 책이 더 편한데 [2] ㅁㅁ(221.154) 09.21 50 0
2890785 노가다 하다 안하니까 왜 이리 힘드냐 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 09.21 77 0
2890784 멍유 가지고 노는것도 이제 재미없는데 어디 새 장난감 없낭? [4] ♥냥덩이♥갤로그로 이동합니다. 09.21 85 0
2890783 AI덕에 업무스타일 엄청 바뀌긴했다.. [1] 프갤러(116.126) 09.21 87 0
2890780 인강 VS 책 단 하나만 선택해야한다면? [1] ㅁㅁ(221.154) 09.21 34 0
2890779 [귀인환등초] [WhatIf] 환상초한전 - 프롤로그 프갤러(121.172) 09.21 31 0
2890778 솔직히 프로그래밍 언어 쓰면서 특정 회사가 계약서 들이밀고 [1] 프갤러(110.8) 09.21 46 0
2890777 냉정하게 23살엔 하고싶은거 하면서 살아도 되냐?? [3] ㅇㅇ(223.38) 09.21 83 0
뉴스 TIOT(티아이오티), 오늘(23일) 미니 4집 'MY PRIDE' 발매 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2