どのような構造化例外処理され

 ... 
  

このエラーは、影響を与えるので、構造化例外処理されていないで、摘発されていないユーザーは、標準エラーメッセージを見ている。する前にエラーをキャッチできますが、エラーをキャッチしようとするColdFusionに指示する必要があります:

 ... 

cftryをエラーのコード囲まれたブロックを見て、ColdFusionに指示、およびcfcatch場合、エラーが発生するのColdFusion何をすべきか指示します。タイプCFCATCH ="任意"は、任意のエラーコードには、特定のcfcatchブロック以内に渡すために実行を引き起こすのColdFusionに指示します。 CFCATCH 1つのタイプ、これはキャッチされるエラーのタイプを指定する名前の属性だけの場合は、データベースのエラーをキャッチするには、たとえば、次のコードを使用することができますされます:

 ... 

場合の構築CFCATCHこのcftryを/を使用し、すべてのデータベースエラーがキャッチされてcfcatchタグのペア内のコードで処理し、すべてのデータベース以外のエラーは、アプリケーションの構造化例外の次のレベルのフレームワークの処理に至るまで下落。のtype属性CFCATCHへの引数として先進的な例外の型を指定すると、つかまえることができるとは、ColdFusion Serverの境界を超えて発生することが非常に具体的なエラーを処理します。これは多くのエラーの種類を持つポイントは、構造化例外処理きめ細かいそれぞれに対応することができます特定の方法で入力します。場合は、たとえば、2つの異なるタイプをキャッチして、2つの異なる方法で処理する例外ハンドラがあることが、次のとおり:

 ...コードを実行するためにここに... データベースのエラーが発生しました。 式のエラーが発生しました

前述の例のいずれかのデータベースエラー、または式のエラーをキャッチし、一つに応じて異なるメッセージを出力します。場合は、エラーがデータベースまたは式のエラーが発生しない場合は、エラーがキャッチされていないユーザーは、標準的なメッセージ出力を見ている。タイプ="任意の"エラーの種類をキャッチすることはできませんCFCATCH。具体的には、タイプ="任意"すべてのエラーは、Javaクラスjava.lang.Exceptionから派生をキャッチします。タイプ="任意"ただし、エラーが発生java.lang.Throwableの派生をキャッチしていません。次のように、これらのエラーをキャッチするために、特別なCFCATCHを定義する必要があります:

 ...  ... 

これは、標準のColdFusionの機能のいずれもこのタイプのエラーをスローする場合はほとんどこのタイプが発生します。あなたは、そのすべてで、特定のエラーをキャッチすることはできませんを知って驚いたことがあります。次のコード例に関係なく、cftryを不正コードが周囲のエラーがスローさ:

エラーが発生しました! 

cfsetをので、ColdFusionはエラーを示すスローコンテンツはありませんが、無効なCFMLの構築が見つかりました列7時9行目で。のでcftryをし、タイプCFCATCHこの結果は、しかし、奇妙に思えるかもしれません="任意"。この問題は、ここでは悪いcfsetをどのCFCATCHをキャッチすることはできませんcompiletimeエラーが作成されます。 CFCATCHのみ、実行時エラーは、テンプレートの実行中に発生をキャッチすることができます。前項のスニペットの場合では、ColdFusionが正常に解析することができず、ページをコンパイルするので、例外処理を有効にしていない場合には、コンパイル時のエラーは、テンプレートをキャッチできる呼び出し元のページを持つページcfincludeをしていた入力エラーです。これはまれですが、とする例外をコンパイル時のエラーをキャッチする処理に依存しないように注意する必要があります。簡単な答えは何です!エラー任意の方法では、完全に細かい詳細に検討することを無視してから、別のテンプレートをユーザーが再ルーティングに合うを参照して処理することができます。また、通常は1次の2つの操作を行います。のいずれかの異なるページにユーザーをリダイレクトする、またはユーザーフレンドリーなメッセージ何が起こったかという通知を表示します。いずれかの2つの理念のユーザーをリダイレクトに従うことができます。最初に発生することができますが、特定のページにユーザーをリダイレクトエラーごとに、次の例のように固有のエラーページを持ってすることです:

 ... 

この方法の欠点は、正確に何が起こったかと理由を伝えることはできません。より良いオプションはエラーページにユーザーをリダイレクトされますが、URL内のエラーメッセージを渡すと、次のとおり:

 ... 

このコードは、URLパラメータでは、エラーページに詳細なエラーメッセージを渡します。次のように別のオプションではなく、直接メッセージのいくつかのタイプを表示するためにユーザーがリダイレクトされます:

 ... データベースのエラーが発生しました。 

あなたは、上記のコードでは、メッセージの後にcfabortに到達を追加します。エラーが発生した後に実行を続行するためにエラーが発生したページをしたくない場合があります。はめったに使用されて最後のオプションはエラーを無視することです。これは通常、適切な場合にのみ発生するエラーを期待しているが、それをするかどうかのエラーかどうかが発生する問題ではない場合は、次のコードに示すように:

 ... 

場合は、cfcatchブロックにコメントを追加するエラーを無視しているが通常は良いアイディアだとした場合に戻って、以降のコードを読むことを混同していないです。そして、これを誤っても、より深刻なエラーをキャッチを終了することがありますエラーを無視し、危険を証明することに注意することのいずれかを期待していた。少なくとも良い考えかもしれないCFLOGを使用して場合でも、それを無視するには、次の例のように計画は、エラーログでは:

 ... 

このような場合は、ログファイル内の特定のエラーを見ることができます。

記事ホセCarreto提出


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


Online: 385 users browsing the articles directory