投げるとJavaの例外をキャッチする

以上のColdFusionはJavaオブジェクトとは少し異なる方法で例外をスローします。 Javaの例外として処理される次のとおり:

 #exception.toString()# 
  

GetExceptionを()()メッセージは、ユーザーに表示することができますを取得しますMyObjectにします。Exception.toStringが発生した最も最近の例外を取得します。 CFScriptでも限られた能力の例外処理を実行するには含まれています。その代わりにcftryを使用するとcfcatch場合は、試してみてcfscriptブロック内のキーワードをキャッチ、次のように使用します:

 = createObjectを(の"COM"、"Excel.Application");)(任意の例外)(WriteOutputキャッチ(oExcelしてください("中。COMは、COMオブジェクトのインスタンス化エラーが発生した、次のエラーメッセージが返されます:#exception.Message#); ) 

場合、Excelは、ColdFusionサーバーでは、前述の例を実行するにインストールされていませんでは、CreateObject()は、その後、catchブロックでキャッチされるエラーがスローされます。通知CFCATCH構文とは、catch構文の違い。内部CFScriptを使用すると、例外の型が続くと、例外オブジェクトの名前が続きますcatchキーワードを指定します。例外オブジェクトを使用する前にこの資料で使用されるCFCATCHの構造と等価です。があるので、カスタムエラーをスローする方法はありません残念ながら、CFScriptでの例外処理に限定され、一度キャッチしたがエラーの再スローする方法はありません。 cftryとcfcatchは、コードのターゲットとなる部分で発生する特定のエラーのために便利です。することができます、しかし、また、あなたのアプリケーション内で発生し、一般的なエラーハンドラをページに制御を渡すcferrorタグ。cferrorの通常の内部に配置されますを使用してすべてのエラーをキャッチApplication.cfmの。典型的な呼び出しに見えるは次のとおり:

cferrorを使用するために呼び出すColdFusionは、場合、任意のタイプのすべてのキャッチされない例外がアプリケーションで発生すると、それerror.cfmにユーザーをリダイレクトする必要があります伝えます。なぜなら、今ではユーザーに与えることができますこの="任意"というエラーページにユーザーをリダイレクトは、cfcatch型に似ていますが、cferrorのではなく、単一のターゲットのブロックは、アプリケーション内のすべてのコードについて説明します。このアプローチは、その利点があります-ユーザーにわかりやすいエラーページに関係なく、エラーが発生している場合があります。ので簡単に場所を特定することはできません自体cferrorのを使用しての欠点は、エラーを診断するよりも難しいです。あなたの最高のコースを一緒にcftryとcferrorのを使用するコードの特定の領域にcftryを置くとされ、その後は例外として扱うことができません。予期しないエラーのためcferrorのに頼る。たびcferrorのエラーが発生すると、テンプレートの属性で指定されたテンプレートページの実行を渡します。ポイントには、エラーが発生した生成されたエラーページとしてだけでなく、すべてのコンテンツのエラーについての情報へのアクセスをしています。良いテンプレートにエラーを使用するには、電子メール、サイト管理者は、すべてのエラー情報を彼に送信すると出力し、ユーザーフレンドリーなエラーメッセージを表示するためには、サイトの定期的なグラフィカルな治療を統合します。このコードは、よく書かれたエラーページが表示されます。

中には、[1#Error.TagContextテンプレートの処理エラーが発生しました]の行が#Error.TagContext。テンプレート#で[1]。ライン#。診断情報を以下に:エラーの種類です:#Error.RootCause.Type#はReferer:#Error.HTTPReferer#エラーメッセージ:#Error.RootCause.Message#エラーの詳細:##Error.Rootcause.Detail エラーは、リクエスト時に発生しました。もう一度やり直してください。

我々は、この部分の冒頭に、その表示は、cferror例では、例外の属性があります。 cferrorを使用の例外の属性のtype属性CFCATCHに似ている:これは、例外のタイプをColdFusionの指示cferrorタグに影響します。例えば、その場合cferrorを使用するために、以下の呼び出しがあるとします:


   

ColdFusionは、アプリケーション内で発生するすべてのエラーが記録されます。場合は、ログファイルを表示し、アプリケーション内のすべてのエラーの履歴を得ることができるときに何のログファイルは、cf_root内の\ logs \ディレクトリに格納されて起こった見て。ログには、あなたが最も気にする必要がありますファイルのapplication.log、これはあなたのアプリケーションで発生するエラーが含まれています。場合は、ログファイルを見て、レコードを見つけることによって、エラーを追跡できます。そのCFCATCHまたはcferrorのに巻き込まれてしまうも、エラーのapplication.logに格納されているので、正確にどの場合でも、CFCATCHエラーが不明瞭に様子を見ることができます。また、書くことができますCFLOGを使用してログファイルに独自のメッセージは次のとおり:

そのファイルには、cf_root内の\ logs \ディレクトリMyLog.logに呼ばれるメッセージを書き込みます。これは非常には、特定のエラーログに記録する、特定の問題の状況で役に立つことができます。ですので、そうすることが不必要にサーバーに負担が発生するたびに、エラーログはありません。 ColdFusionのcftryタグから例外処理技術の広い範囲を提供し、すべてを網羅したサイト全体のエラーハンドラにCFCATCH。それぞれの手法自体が、強力なことができる場合にのみ、これらの3つのインテリジェントに統合される場合ColdFusionの例外処理の枠組みの可能性を最大限に到達しません。あなたとColdFusionの例外処理フレームワークを使用してさまざまな方法について学ぶこの記事では、どのように異なる部分作業いっしょに。また、エラーの数多くの種類がスローされることとcfcatchとcferrorをキャッチについて学び、あなたも、どのようにあなた自身の目的のために使用できる独自のカスタムエラーの種類を作成することを学ぶ。

記事は、アリスButtler提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、"を投げるとJavaの例外をキャッチする"自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 389 users browsing the articles directory