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


 2009-05-29 09:52:12  No: 34567  IP: 192.*.*.*

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

関数1{
try
  関数2

  関数3

except

end;
}

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

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

編集 削除
たぬ吉  2009-05-29 10:29:27  No: 34568  IP: 192.*.*.*

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

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

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

編集 削除
どやさ  2009-06-03 10:51:27  No: 34569  IP: 192.*.*.*

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

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 10:51:30  No: 34570  IP: 192.*.*.*

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

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;

これでいいか?

編集 削除