Changes between Version 1 and Version 2 of ErrHandle


Ignore:
Timestamp:
Jul 11, 2008, 11:54:23 AM (11 years ago)
Author:
cameron
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ErrHandle

    v1 v2  
    11= Error Handling Architecture =
    22
    3 Parabix needs an error handling architecture but doesn't have one yet.
     3These are working notes on the development of the error handling architecture
     4for Parabix.  Notes initiated July 11, 2008 by RDC.
     5
     6 1. Error Action Architecture
     7 1. Error Classification Architecture
     8
     9== Error Action Architecture ==
     10
     11Currently, Parabix simply provides an error message and exits on encountering
     12a syntax, well-formedness or validation error.
     13
     14A better error action architecture is needed.   Ideally, exception handling
     15could be used, but C++ exception handling imposes too much overhead for
     16a high-performance engine.
     17
     18One area to investigate is the use of setjmp/longjmp for error handling.
     19The critical issue is how to arrange for the release of resources
     20from deep inside the parsing engine when longjmp is used.
     21
     22An interesting architectural possibility would be to provide a Parabix
     23error-handling resource located on the web, say using parabix.net.
     24Under certain circumstances, a link to a page for a particular error could
     25be displayed to the user.   The page could actually be a wiki for users to
     26discuss how the error may be resolved or worked around.
     27
     28== Error Classification Architecture ==
     29
     30=== XML Parsing Errors ===
     31
     32The source file [source:trunk/src/xml_error.h xml_error.h] classifies XML parsing errors
     33into syntax errors and constraint errors. 
     34 
     35Syntax errors represent errors in the
     36syntax of a particular XML production rule.  The XML_NonTerminal enumeration is used
     37to identify these errors, using actual XML nonterminal names.
     38
     39Constraint errors are divided into two types: well-formedness constraints and
     40validity constraints.   These are respectively identified by labels having the
     41prefix "wfErr_" and "vErr" in the XML_Constraint enumeration.  The actual labels
     42are derived from the anchor targets in the XML1.0 specification and could
     43hence be used as the basis for hyperlinking if that were desirable.
     44
     45
     46
     47=== Implementation Limit Errors ===
     48
     49Parabix needs a systematic approach to dealing with implementation limits.
     50
     51
     52=== System Errors ===
     53
     54Parabix needs a systematic approach to dealing with system errors, e.g., errors in
     55opening files and so on.
     56
     57
     58