미리 감사드립니다.mod_cgi와 mod_perl 모두에서 오류 잡기
나는 오류 처리에 관한 연구를 해왔고, 내가해야 할 일에 대한 확실한 이해를 얻지 못하고있다.
프리앰블 : 내 코드가 아파치에서 살고 있으며 브라우저에서 실행되었으므로 내 목표에 명령 줄 실행이 포함되지 않습니다.
CGI :: Carp (fatalsToBrowser)의 동작을 출력물을 캡처하여 내 자신의 템플릿 페이지에 던져 버릴 수있는 기능으로 만들고 싶습니다. 이메일을 보내면 ... 그 fatalsToBrowser mod_perl에서 작동하지 않습니다. 아무도 이유를 아나요? Apache/mod_perl은 어떻게 진행되고 있습니까?
첫 번째 목표 : 코드가 mod_perl 또는 mod_cgi로 실행되는 경우 작동하도록 함께 정리하고 싶습니다.
두 번째 목표 : .NET의 Application_Error (global.asax) 및 PHP의 set_exception_handler() 및 set_error_handler() 메서드와 비슷한 모든 오류를 catch하는 고급 메서드가 필요합니다. 이것들은 엉망인
/총
try-catch 문에 코드를 래핑하지 않고 오류가 발생할 때 제어 할 수있게합니다.
것 I 검토/읽었습니다 :
1) OO Exception Handling in Perl하지만, 내가 찾고 하였다없는 것. 내가 잡으려고하는 대부분의 것들은 죽는다. 다음 링크에서는이 기사가 최신이 아니며 더 이상 사용되지 않는다고 말합니다.
2.) Perl: $SIG{__DIE__}, eval { } and stack trace 그러나 나는 내 목표와 관련하여 많은 것을 얻지 못했습니다.
3) 실용 모드 Perl (O'Reilly), 제 21 장 "오류 처리 및 디버깅". 고맙게도 모든 필자의 perl 코드는 엄격한 경고와 경고를 사용하며, 6 장 "마음에 mod_perl로 코딩하기"에서 언급 된 가장 중요한 것들은 이미 완료되었습니다.
4.) "Perl 배우기", "Perl Cookbook", "Programming Perl"및 "Higher Order Perl"의 목차를 파헤 치며 나에게 얽힌 것을 보지 못했습니다. 내가 뭔가를 놓친 것 같으면 저에게 알려주세요. :)
나는 곳 (아마도 "실용 mod_perl을"의 기억하지 않지만, 내가 읽은 당신은 오류의 유형을 $ SIG {__ DIE__}.
스크립트가 실제'mod_perl' 스크립트입니까 아니면 CGI 스크립트를 성능 이점을위한'ModPerl :: Registry' 스크립트로 실행하고 있습니까? –
내 스크립트는 어느 환경에서도 동일한 작업을 수행해야합니다. – rakhavan
try/catch 블록에 대한 의견을 다시 평가해야한다고 생각합니다. 올바른 수준에서 사용된다면 지저분하거나 총체적이지 않습니다. – innaM