4

변수의 일부 범위를 덤프하고 전자 메일을 통해 저에게 보내는 오류 관리 기능을 확장하려고합니다. 이 경우 Application.cfc에서 onError 메서드를 사용하고 있습니다.ColdFusion : Application.cfc의 onError 메서드에서 오류를 throw하는 함수의 인수를 가져옵니다.

<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를 호출하면 javascript-file-1javascript-file-2을 얻을 수 있습니까? 훌륭한 주장의 종류?

감사합니다.

+1

오류가 발생한 기능을 알지 못합니다. 어떤 메소드가 에러를 던지는지 안다면 CFTRY에 코드를 래핑하거나, CFCATCH에'arguments' 스코프를 덤프 할 수 있습니다. 또는 해당 스코프를'request' 스코프에 복사하고'onError()'에 덤프 할 수 있습니다. 뿐만 아니라 CFRETHROW를 사용하십시오. 나는 onError() 메소드가 다른 메소드의'arguments' 스코프에 접근 할 것이라고 생각하지 않는다. 희망이 도움이됩니다. –

+0

맞습니다. 어떤 기능이 예외를 일으키는 지 알지 못합니다. 오류 수정은 많은 응용 프로그램에서 사용됩니다. cfrethrow 힌트를 주셔서 감사합니다 - 이것은 새로운 프로젝트에 유용합니다. – Seybsen

답변

0

나는 100 % 확실하지 않지만 인수를 덤프 할 수는 있습니다. 당신이 얼마나 많은 기능을 가지고 있는지에 달려 있습니다.

일반적으로 모든 범위와 예외를 덤프하면 필요한 모든 정보가 제공됩니다.

우리는 당신의 일을하고 함수 내에서 특정 오류 트랩을 설정하지 않고이 작업을 수행 할 수 있습니다

+2

'arguments '를 덤프하는 것은'onError()'의'arguments' 스코프만을 덤프 할 것이라고 생각합니다. –

0

하지 확인 application.cfc의 모든 범위를 덤프 거의 정확하게 무엇. 그러나 단순히 디버그이고 오류를 지나쳐야하는 경우 인수를 요청 범위에 임시로 복사 한 다음 요청 범위를 덤프하십시오.

+1

그는 모든 방법에 대해이 작업을 수행해야하는 것처럼 보입니다. 어떤 작업이 오류를 던지는지 알지 못합니다. –

+0

네, 이것은 의존성 주입의 아름다움이 때때로 약간의 빛을 잃는 곳입니다 :) –