Annotation of parser3/src/main/pa_xml_exception.C, revision 1.1
1.1 ! paf 1: /** @file
! 2: Parser: exception class.
! 3:
! 4: Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
! 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
! 6: */
! 7:
! 8: #include "pa_config_includes.h"
! 9:
! 10: #ifdef XML
! 11:
! 12: static const char* IDENT="$Date: 2003/07/24 11:31:23 $";
! 13:
! 14: #include "pa_xml_exception.h"
! 15: #include "pa_globals.h"
! 16: #include "pa_common.h"
! 17:
! 18: // methods
! 19:
! 20: XmlException::XmlException(
! 21: const String* aproblem_source,
! 22: GdomeException& exc) {
! 23: ftype="xml";
! 24: fproblem_source=aproblem_source;
! 25:
! 26: const char* xml_generic_errors=xmlGenericErrors();
! 27: if(xml_generic_errors || exc) {
! 28: const char* s;
! 29: switch((GdomeExceptionCode)exc) {
! 30: case GDOME_NOEXCEPTION_ERR: s="NOEXCEPTION_ERR"; break;
! 31: case GDOME_INDEX_SIZE_ERR: s="INDEX_SIZE_ERR"; break;
! 32: case GDOME_DOMSTRING_SIZE_ERR: s="DOMSTRING_SIZE_ERR"; break;
! 33: case GDOME_HIERARCHY_REQUEST_ERR: s="HIERARCHY_REQUEST_ERR"; break;
! 34: case GDOME_WRONG_DOCUMENT_ERR: s="WRONG_DOCUMENT_ERR"; break;
! 35: case GDOME_INVALID_CHARACTER_ERR: s="INVALID_CHARACTER_ERR"; break;
! 36: case GDOME_NO_DATA_ALLOWED_ERR: s="NO_DATA_ALLOWED_ERR"; break;
! 37: case GDOME_NO_MODIFICATION_ALLOWED_ERR: s="NO_MODIFICATION_ALLOWED_ERR"; break;
! 38: case GDOME_NOT_FOUND_ERR: s="NOT_FOUND_ERR"; break;
! 39: case GDOME_NOT_SUPPORTED_ERR: s="NOT_SUPPORTED_ERR"; break;
! 40: case GDOME_INUSE_ATTRIBUTE_ERR: s="INUSE_ATTRIBUTE_ERR"; break;
! 41: case GDOME_INVALID_STATE_ERR: s="INVALID_STATE_ERR"; break;
! 42: case GDOME_SYNTAX_ERR: s="SYNTAX_ERR"; break;
! 43: case GDOME_INVALID_MODIFICATION_ERR: s="INVALID_MODIFICATION_ERR"; break;
! 44: case GDOME_NAMESPACE_ERR: s="NAMESPACE_ERR"; break;
! 45: case GDOME_INVALID_ACCESS_ERR: s="INVALID_ACCESS_ERR"; break;
! 46: case GDOME_NULL_POINTER_ERR: s="NULL_POINTER_ERR"; break;
! 47: default: s="<UNKNOWN CODE>"; break;
! 48: }
! 49:
! 50: fcomment=new(PointerFreeGC) char[MAX_STRING];
! 51: const char* xml_error_message;
! 52: const char* xml_error_prefix;
! 53: if(xml_generic_errors) {
! 54: xml_error_prefix="\n";
! 55: xml_error_message=xml_generic_errors;
! 56: } else {
! 57: xml_error_prefix="";
! 58: xml_error_message="";
! 59: }
! 60: if(exc)
! 61: snprintf(fcomment, MAX_STRING,
! 62: "DOMException %s (%d)."
! 63: "%s%s",
! 64: s, // decoded code of exception
! 65: exc, // DOM exception code
! 66: xml_error_prefix, xml_error_message // xml generic messages accumulated
! 67: );
! 68: else // no DOM exception
! 69: snprintf(fcomment, MAX_STRING,
! 70: "%s",
! 71: xml_error_message // xml generic messages accumulated
! 72: );
! 73: } else
! 74: fcomment=0;
! 75: }
! 76: #endif
E-mail: