/** @file Parser: exception class. Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com) Authors: Konstantin Morshnev , Alexandr Petrosian */ #include "pa_config_includes.h" #ifdef XML #include "pa_xml_exception.h" #include "pa_globals.h" #include "pa_common.h" #include "pa_charset.h" volatile const char * IDENT_PA_XML_EXCEPTION_C="$Id: pa_xml_exception.C,v 1.15 2026/04/25 13:38:46 moko Exp $" IDENT_PA_XML_EXCEPTION_H; // methods XmlException::XmlException(const String* aproblem_source, const char* aproblem_comment, ...) { ftype="xml"; fproblem_source=aproblem_source; fcomment=new(PointerFreeGC) char[MAX_STRING]; va_list args; va_start(args, aproblem_comment); vsnprintf((char *)fcomment, MAX_STRING, aproblem_comment, args); va_end(args); } XmlException::XmlException(const String* aproblem_source, Request& r){ ftype="xml"; fproblem_source=aproblem_source; if(const char* xml_generic_errors=xmlGenericErrors()){ fcomment=pa_strdup(xml_generic_errors); if(r.charsets.source().isUTF8()) fcomment=fixUTF8(fcomment); } else fcomment="-UNKNOWN ERROR-"; } XmlException::XmlException(){ ftype="xml"; fproblem_source=0; if(const char* xml_generic_errors=xmlGenericErrors()) fcomment=pa_strdup(xml_generic_errors); else fcomment="-UNKNOWN ERROR-"; } #endif