例外処理について教えてください。
関数1{
try
関数2
関数3
except
end;
}
今関数1で例外処理をしていますが、関数2や関数3の中で例外が発生した場合も関数1の中のexceptに入ってきてくれるのでしょうか?
もしくわ関数2の中でも関数1と同じように例外処理をいれなきゃいけないのでしょうか?
教えてください。
よろしくお願いします。
実際に試してみるのが手っ取り早いと思いますが。。。
hoge1を呼び出してみてください。
procedure hoge2;
begin
StrToInt('5.5');
end;
procedure hoge1;
begin
try
hoge2;
except
ShowMessage('例外だよ');
end;
end;
つくれないならまだしも、作れるなら
自分でテストプログラム作って試すことです。
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;
これでいいか?
つくれないならまだしも、作れるなら
自分でテストプログラム作って試すことです。
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;
これでいいか?
ツイート | ![]() |