Annotation of parser3/src/main/pa_xml_exception.C, revision 1.2
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:
1.2 ! paf 12: static const char * const IDENT="$Date: 2003/11/06 08:51:01 $";
1.1 paf 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: