cfcatch内でのタイムアウトエラーが発生する場合

cftry~cfcatchによる例外処理を行う際、cfcatchの中でcfタグを用いた処理を行っていると、そこでもタイムアウトが検知される場合があります。

例えば以下のような事が考えられます

  1. <cftry>ブロック内で、ColdFusionのリクエストタイムアウトが発生した
  2. <cfcatch>による例外処理に移ります
  3. <cfcatch>の処理の中で、<cfoutput>や<cfloop>などのColdFusionの処理を行っていると、そこでもリクエストタイムアウトが検知されます
  4. 例外処理の中でもエラーが発生したという認識になり、画面上にColdFusionの標準エラーメッセージが表示されます。

例えば<cflog>タグはリクエストタイムアウトを検知しませんので、例外処理の中で<cflog>タグを使ってログに出力する処理を行うことができます。ですので、
・<cfcatch>ブロックでリクエストタイムアウトを起こした場合は<cflog>でログに書き出す
・それ以外のエラーの場合は<cfoutput>や<cfloop>などを使用した例外処理を実行する
などの対応を行ってください

【例】

<cftry>

 …ColdFusionの処理…

  <cfcatch type="coldfusion.runtime.RequestTimedOutException">
    <cflog text="#cfcatch.Message# - #cfcatch.StackTrace#" type="error" file="ログファイル">
  </cfcatch>
  <cfcatch>
     その他のエラーが発生した時の例外処理(<cfoutput>や<cfloop>などを含む処理)
  </cfcath>
</cftry>

 


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.