4

変数のスコープをダンプし、電子メールで私に送信するエラー管理機能を拡張しました。このケースでは、Application.cfcでonErrorメソッドを使用しています。ColdFusion:Application.cfcのonErrorメソッドでエラーをスローする関数の引数を取得

<CFDUMP var="#arguments.exception#" label="Error"> 
<CFDUMP var="#Application#" label="APPLICATION-Scope" /> 
<CFDUMP var="#form#" label="FORM-Scope"> 
<CFDUMP var="#url#" label="URL-Scope"> 
<CFDUMP var="#CGI#" label="CGI-Scope" /> 
<CFDUMP var="#session#" label="SESSION-Scope" /> 
<CFDUMP var="#variables#" label="VARIABLES-Scope" /> 

のonErrorは、私は、この例では最初のダンプの引数として例外を持っている....しかし、どのように私はエラーが発生した関数の引数を取得できますか?たとえば、Application.cfcのonRequestメソッドのUDFを<CFSET giveMeMyScripts("javascript-file-1","javascript-file-2") />のように呼び出すと、javascript-file-1javascript-file-2を得ることは可能ですか?超議論の種類?

ありがとうございます。

+1

エラーが発生している機能がわからないのですか?どのメソッドがエラーをスローしているのかわかっているなら、CFTRYでそのコードをラップしたり、CFCATCHの 'arguments'スコープをダンプしたり、' scope 'スコープにコピーして' onError() 'にダンプしたりできます。 CFRETHROWを使用してください。私は 'onError()'メソッドが別のメソッドの 'arguments'スコープにアクセスするとは思いません。お役に立てれば。 –

+0

あなたが正しいです、どの機能が例外を引き起こしているのか分かりません(エラー管理は多くのアプリケーションで使用されています)。 cfrethrowのヒントありがとう - それは新しいプロジェクトには非常に便利です。 – Seybsen

答えて

0

私は100%確実ではありませんが、引数をダンプすることは可能かもしれません。あなたが深く関わっている機能の数に依存するかもしれません。

通常、すべてのスコープと例外をダンプすると、必要なすべての情報が得られます。

私たちは、あなたがやって、あなたが関数内で特定のエラー・トラップを設定せずにこれを行うことができます

+2

'arguments 'をダンプすると' onError() 'の' arguments'スコープだけがダンプされると思います。 –

0

わからないのApplication.cfc内のすべての範囲をダンプほぼ正確に何をすべきか。しかし、単にのデバッグであり、エラーを回避する必要がある場合は、引数をリクエストスコープに一時的にコピーしてから、要求スコープをダンプします。

+1

彼はあらゆる方法にこれをしなければならないように見えます - 彼はどちらがエラーを投げているのか分かりません。 –

+0

これは、依存性注入の美しさが時々少し輝く場所です。 –

関連する問題