--- parser3/src/include/pa_request.h 2002/02/18 15:21:00 1.122 +++ parser3/src/include/pa_request.h 2002/03/27 15:30:35 1.125 @@ -4,7 +4,7 @@ Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) - $Id: pa_request.h,v 1.122 2002/02/18 15:21:00 paf Exp $ + $Id: pa_request.h,v 1.125 2002/03/27 15:30:35 paf Exp $ */ #ifndef PA_REQUEST_H @@ -165,7 +165,7 @@ public: /// returns current SQL connection if any SQL_Connection *connection(const String *source) { if(!fconnection && source) - throw Exception(0, 0, + throw Exception("parser.runtime", source, "outside of 'connect' operator"); @@ -196,10 +196,16 @@ public: /// $cookie:elements VCookie cookie; + //@{ request processing status + /// execution stack + Stack stack; /// contexts Value *self, *root, *rcontext; /// contexts WContext *wcontext; + /// exception stack trace + Stack exception_trace; + //@} /// 'MAIN' class conglomerat VStateless_class *main_class; @@ -215,17 +221,11 @@ private: // core data /// already used files to avoid cyclic uses Hash used_files; - /// execution stack - Stack stack; - /** endless execute(execute(... preventing counter @see ANTI_ENDLESS_EXECUTE_RECOURSION */ uint anti_endless_execute_recoursion; - /// stack trace - Stack trace; - private: // compile.C VStateless_class& real_compile(COMPILE_PARAMS); @@ -364,7 +364,7 @@ private: Value& get_as(int index, bool as_junction, const char *msg) { Value& result=get(index); if((result.get_junction()!=0) ^ as_junction) - throw Exception(0, 0, + throw Exception("parser.runtime", &fmethod_name, "%s (parameter #%d)", msg, 1+index);