CFRETHROW  
説明

現在アクティブな例外を再び返します。例外の cfcatch.type および cfcatch.tagContext 変数の値を保持します。

 
カテゴリ

例外処理タグ、拡張タグ

 
シンタックス
<cfrethrow>
 
関連項目

cferror、cfthrow、cftry、『ColdFusion MX 開発ガイド』の第14章の「エラーの処理」 の「ColdFusion タグでのランタイム例外の処理」

 
使用方法

このタグは、cfcatch ブロック内で使用します。このタグは、エラーハンドラが検出したエラーをうまく処理できないときに、エラー処理コードとして役立ちます。たとえば、cfcatch type = "any" で DATABASE 例外エラーが検出され、コードが CFX 例外のみを処理するように記述されている場合、ハンドラにより詳細を保持したまま例外がハンドラによって再び返され、より高いハンドラでエラー情報を処理できるようになります。cfthrow タグを使用すると、元の例外のタイプと詳細は失われます。

 
<h3>cfrethrow の例</h3>
<!--- DATABASE 例外を再び返します。 --->
<cftry>
   <cftry>
      <cfquery name = "GetMessages" dataSource = "cfsnippets">
         SELECT *
         FROM  Messages
      </cfquery>
   <cfcatch type = "DATABASE">
      <!--- データベースが 50555 エラーの信号を出した場合は無視し、それ以外の場合はエラーを再び返します。 
--->
      <cfif cfcatch.sqlstate neq 50555>
         <cfrethrow>
      </cfif>
   </cfcatch>
   </cftry>
<cfcatch>
   <h3>残念ながら、このリクエストを完了できませんでした。</h3>
   <h4>変数を検出します。</h4>
   <cfoutput>
      <cfloop collection = #cfcatch# item = "c">
         <br>
         <cfif IsSimpleValue(cfcatch[c])>#c# = #cfcatch[c]#
         </cfif>
      </cfloop>
   </cfoutput>
</cfcatch>
</cftry>