UParseError

一个 UParseError 结构体用于返回关于解析错误的详细信息。

摘要

它由 ICU 解析引擎使用,这些引擎用于解析长规则、模式或程序,其中待解析文本足够长,需要比 UErrorCode 更多的信息来定位错误。

行、偏移量和上下文字段是可选的;解析引擎可以选择不使用它们。

preContext 和 postContext 字符串包含错误周围的部分上下文。如果源文本是“let for=7”,并且“for”是错误(例如,因为它是一个保留字),那么解析器可能会产生的一些示例如下:

preContext   postContext
""           ""            The parser does not support context
"let "       "=7"          Pre- and post-context only
"let "       "for=7"       Pre- and post-context and error text
""           "for"         Error text only

使用 UParseError 的引擎示例(或将来可能使用它的引擎)包括 Transliterator、RuleBasedBreakIterator 和 RegexPattern。

公共属性

line
int32_t
发生错误的行。
offset
int32_t
错误所在字符的偏移量。
postContext[U_PARSE_CONTEXT_LEN]
错误本身和/或错误之后的文本上下文。
preContext[U_PARSE_CONTEXT_LEN]
错误之前的文本上下文。

公共属性

line

unicode/parseerr.h 中声明
int32_t UParseError::line

发生错误的行。

如果解析器使用此字段,它会将其设置为错误出现的源文本行的行号,该值将 >= 1。如果解析器不支持行号,则该值将 <= 0。

offset

unicode/parseerr.h 中声明
int32_t UParseError::offset

错误所在字符的偏移量。

如果 line 字段 >= 1,则这是从行首开始的偏移量。否则,这是从文本开头开始的偏移量。如果解析器不支持此字段,则其值将 < 0。

postContext

unicode/parseerr.h 中声明
UChar UParseError::postContext[U_PARSE_CONTEXT_LEN]

错误本身和/或错误之后的文本上下文。

以 null 结尾。如果解析器不支持,则为空字符串。

preContext

unicode/parseerr.h 中声明
UChar UParseError::preContext[U_PARSE_CONTEXT_LEN]

错误之前的文本上下文。

以 null 结尾。如果解析器不支持,则为空字符串。