ColdFusionカフェテリア
SAMURAIZ
| ↑一覧へ戻る |
ColdFusionクリニックへようこそ
さて、、今回のモヤモヤされている方は

変数を呼び出すと「変数 XXX が未定義です」エラーが出るんです

作成日: 2015年8月
最終更新日: 2015年8月

では、さっそく診てみましょう

次の情報は、Web サイト開発者のデバッグに役立ちます。
リクエストを処理する際に、エラーが発生しました。

変数 AAA が未定義です。

エラーの発生位置 C:/ColdFusion11/cfusion/wwwroot/local_link/error100/category1/001_error.cfm: line 1
1 : <cfoutput>#aaa#</cfoutput>
2 : <cfset a=bbb>

スタックトレース
at cf001_error2ecfm1990249519.runPage(C:/ColdFusion11/cfusion/wwwroot/local_link/error100/category1/001_error.cfm:1)

coldfusion.runtime.UndefinedVariableException: 変数 AAA が未定義です。
	at coldfusion.runtime.CfJspPage._get(CfJspPage.java:388)
	at coldfusion.runtime.CfJspPage._get(CfJspPage.java:350)
	at coldfusion.runtime.CfJspPage._autoscalarize(CfJspPage.java:1462)
	at cf001_error2ecfm1990249519.runPage(C:\ColdFusion11\cfusion\wwwroot\local_link\error100\category1\001_error.cfm:1)
...

■検診の結果

このエラーは、ColdFusionで変数を呼び出し(画面に変数の値を表示しようとしたり、CFタグや関数でその変数を使用したり)た時に、指定した変数が見つからなかったために発生するエラーです。

■治療法は?

このエラーに遭遇する場合の多くは、ローカル変数を呼び出している時です。または、CF関数を呼び出そうとして、タイプミスした場合にも遭遇するでしょう。まずは、エラーメッセージを見て該当する行でどのような呼び出しを行っているかを下記に注意しながら確認してみましょう。
  • ローカル変数を呼び出すよりも前に、その変数をセットしていますか?
  • ローカル変数は、そのページ内でのみ有効な変数です。違う.cfmページで変数をセットしていませんか?
  • ローカル変数ではなく、Application変数やSession変数、Client変数を呼び出そうとしていた場合は、変数名の前に種類を表す文字(Application.変数名, Session.変数名, Client.変数名)が必要ですが付け忘れていませんか?
  • CF関数を呼び出そうとしてこのエラーに遭遇されている場合は、関数名にタイプミスはありませんか(DateFormat関数を呼び出そうとしてDataFormatとタイプミスしたなど)?

■今後の予防

ColdFusionは、呼び出そうとした変数が見つからないとエラーが発生して処理が中断します。プログラムの品質をあげるために、下記の点に考慮したプログラムを行いましょう。

  • 参照する変数が確実に存在している事をプログラムで確認しましょう。
  • 関数のタイプミスがないように注意するとともに、エディタ等も活用しましょう。
  • 処理によって変数が存在しない場合がある時は、<cfif IsDefined("存在をチェックしたい変数")>〜</cfif>で存在チェックをしましょう。

■おくすり出しておきますね〜(まめ知識)

変数の存在チェックには IsDefined()関数が役に立ちます。下記のプログラム例のように <cfif>と組み合わせて条件分岐を行うと良いです。

<cfset aaa="テスト">
...

<cfif IsDefined("Variables.aaa")>
  <cfoutput>#Variables.aaa#</cfoutput>
</cfif>

お大事に〜
ColdFusionの各種情報の配信


最新情報
■2017/6/26
『ColdFusion 実験室』
実験6

■2017/3/27
ColdFusion 2016 対応
インストール セットアップ情報
CFサーバーのインストール
CFビルダーのインストール

■2016/9/20
『ColdFusion 2016 リリース
Enterprise Edition 活用資料』
記事一覧

■2016/3/30
『ColdFusion 実験室』
実験4、実験5

■2015/8/10 〜
『ColdFusion クリニック』
記事一覧(随時更新中)

■2015/4/8
『JasperReportsによる帳票出力』
2. JasperReportsによる帳票出力【後編】

■2015/3/12
アップクロス株式会社
西元 貞昭様
『JasperReportsによる帳票出力』
1. JasperReportsによる帳票出力【前編】


■2015/2/25
『ColdFusionでエクセルを使いこなそう!』
4. 【上級】ColdFusionのエクセル機能を利用したPDF帳票の紹介

ColdFusionトレーニング


ColdFusionユーザーグループ
ColdFusionユーザーグループ
Copyright 2012 Samuraiz Corporation. All Rights Reserved.