数学的表現の計算に関しては、異なる人々が独自のアプローチを持っています。その方法を分析する方法を使用すると、以下で使用される方法が必要です。式にエラーがある場合、ダイアログボックスがポップアップして、対応するエラーを示すこともできます。このプログラムは、次のような多くの操作をサポートします。文字列操作もありますが、それは意味がありません。このプログラムは上記の目的に従っているため、これらに制限はありません。興味のある友人は、式の構文を事前に確認し、計算のためにこのプログラムに引き渡すことができます。
{
すべての権利は、転載時にソースを示してください
プロジェクト:数学的式の計算
著者:Huang Tao [email protected]
目的:例外クラスの使用方法を学びます
}
ユニットUCALCEXPR;
インタフェース
用途
窓、メッセージ、sysutils、バリアント、クラス、グラフィック、コントロール、フォーム、
ダイアログ、stdctrls、db、adodb;
タイプ
tfrmcalc = class(tform)
Button1:Tbutton;
編集1:tedit;
手順button1click(sender:tobject);
手順edit1keypress(sender:tobject; var key:char);
プライベート
{プライベート宣言}
公共
{公開宣言}
終わり;
関数calcexpr(expr:string):string;
var
frmcalc:tfrmcalc;
実装
{$ r *.dfm}
//これはこのプログラムの中核であり、式を計算することに依存します。
関数calcexpr(expr:string):string;
VARクエリ:Tadodataset;
始める
qury:= tadodataset.create(nil);
試す
Qury.ConnectionString:= 'Provider = MSDASQL.1; SEPTIONセキュリティ情報= FALSE;'
「データソース= dBaseファイル」;
qury.commandtext:= 'select' + expr + 'as result';
qury.open;
結果:= expr + '=' + qury.fieldbyname( 'result')。asstring;
ついに
query.free;
終わり;
終わり;
手順tfrmcalc.button1click(sender:tobject);
始める
試す
edit1.text:= calcexpr(edit1.text);
を除外する
H:例外は開始します
showmessage(h.message);
終わり;
終わり;
終わり;
手順tfrmcalc.edit1keypress(sender:tobject; var key:char);
始める
key =#13の場合、button1click(self);
終わり;
終わり。
概要:例外をキャッチするための2つの方法があることがわかります。例外をキャッチするこれら2つの方法は異なり、それぞれに独自の用途があります。
試してみてください...除いて...特定の方法が呼び出された後にエラーをキャッチし、対応するプロンプトを作成する必要がある場合に、一般的にENDが使用されます。たとえば、上記のプログラムで式を計算する関数を呼び出すとき、式を計算する関数は例外をスローする可能性が高いため、呼び出すときは、例外をキャッチしたり、対応するプロンプトを作成したり、関連する後続の処理を実行したりする必要があります。システムエラーを引き起こし、プログラムインターフェイスの美しさに影響します。単にエラーを報告する場合は、除外の途中でエラーを報告するために、対応するプロンプトを単純に書き込むことができます。エラーの種類を確認したい場合は、上記のプラクティスに従ってエラーをキャッチする必要があります。
試してみてください。最終的には、特定のリソースを割り当てた後、関連する操作を実行するために使用されますが、これらの操作が完了した後にこれをリリースする必要があります。試してみると...最終的なステートメントでは、操作ステートメントを完全に試してみることができます...最終的にリソースを割り当て、これが完全にスムーズに実行できない場合は、ジャンプしますこの円から出て、順番に実行せずに最終的に入力します。最後に...最後に、上記がスムーズに実行されても、例外に遭遇したときに、ここでの声明が実行されるため、当時割り当てられたリソースをリリースするなど、いくつかの余波作業を実行できます。
上記のステートメントは例外をキャッチするために設定されており、次のステートメントがリソース割り当てのために設定されていますが、一部の友人は、例外をキャッチしてリソースを回復する場合はどうすればよいですか?残念ながら、Borlandは...最終的に...上記の目標を達成したい場合は、ネストを使用することができますが、それを行うことは非常に不快です。
要するに、例外クラスの合理的な使用は、プログラミングを大幅に削減し、プログラムのアイデアをより明確にすることができます。書かれたプログラムはもっと美しいです。