例外処理について教えてください


  2009-05-29 18:52:12  No: 34567

例外処理について教えてください。

関数1{
try
  関数2

  関数3

except

end;
}

今関数1で例外処理をしていますが、関数2や関数3の中で例外が発生した場合も関数1の中のexceptに入ってきてくれるのでしょうか?
もしくわ関数2の中でも関数1と同じように例外処理をいれなきゃいけないのでしょうか?

教えてください。
よろしくお願いします。


たぬ吉  2009-05-29 19:29:27  No: 34568

実際に試してみるのが手っ取り早いと思いますが。。。
hoge1を呼び出してみてください。

procedure hoge2;
begin
  StrToInt('5.5');
end;

procedure hoge1;
begin
  try
     hoge2;
  except
     ShowMessage('例外だよ');
  end;
end;


どやさ  2009-06-03 19:51:27  No: 34569

つくれないならまだしも、作れるなら
自分でテストプログラム作って試すことです。

procedure Func1;
begin
   <<<例外発生>>>   →関数1でExceptに入る
end;

procedure Func2;
begin
  try
    <<<例外発生>>>
  except  ↓
    例外処理されるので関数1でExceptに入らない
  end
end;

procedure Func3;
begin
  try
    <<<例外発生>>>  →  例外発生するが
  except                      ↓処理される
    raise EAbort.Create('Func3例外'); 
    しかし、ここで例外をもう一度発生させると関数1のExceptに入る
  end;
end;

これでいいか?


どやさ  2009-06-03 19:51:30  No: 34570

つくれないならまだしも、作れるなら
自分でテストプログラム作って試すことです。

procedure Func1;
begin
   <<<例外発生>>>   →関数1でExceptに入る
end;

procedure Func2;
begin
  try
    <<<例外発生>>>
  except  ↓
    例外処理されるので関数1でExceptに入らない
  end
end;

procedure Func3;
begin
  try
    <<<例外発生>>>  →  例外発生するが
  except                      ↓処理される
    raise EAbort.Create('Func3例外'); 
    しかし、ここで例外をもう一度発生させると関数1のExceptに入る
  end;
end;

これでいいか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加