掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
例外の扱い方(必須処理の書き方について) (ID:19025)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> except句で例外が発生した場合はどうするんでしょうか。 except 内での例外発生に対しては、except 内で try 処理するのが正しいのでは? そのときの為に、外側に finally を置くのはお門違いではないですか? たとえば、 var res: Integer; i: Integer; begin i := 0; try res := 1 div i; except try res := 1 div i; except res := 10; end; end; showMessage( '--> ' + p_pp + ' ' + IntToStr(res) ); end; といった感じ。 (except で例外が発生するようなコードを書くことは少ないですが) 本題に戻って、具体的な質問に変えますが、以下の二つのコード、世間一般では大抵、前者が提示されると思います。 が、後者で良いのではないのか(多少でも前者より不利になる要素はあるのか)? というのが今回の趣旨です。 引き続き、よろしくお願いいたします。 ■ 世間一般によくあるコード例 procedure TMain.BMP2JPGStream(const bmp: TBitmap; var mst: TMemoryStream); var jpg: TJpegImage; begin jpg := TJpegImage.Create; try try jpg.Assign(bmp); jpg.SaveToStream(mst); except on e: Exception do ShowMessage( '[Err] ' + e.Message ); end; finally FreeAndNil(jpg); end; end; ■ でも、これで良いのでは? のコード例 procedure TMain.BMP2JPGStream(const bmp: TBitmap; var mst: TMemoryStream); var jpg: TJpegImage; begin jpg := TJpegImage.Create; try jpg.Assign(bmp); jpg.SaveToStream(mst); except on e: Exception do ShowMessage( '[Err] ' + e.Message ); end; FreeAndNil(jpg); // ←必ず実行される end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.