AlignmentException

对齐段解析异常

基本信息

属性 值
路径 com.github.lunatrius.ingameinfo.parser.text.AlignmentException
行数 22

唯一构造器(:10-13)

public AlignmentException(Alignment alignment, boolean valid) {
    super(alignment.toString());
}

⚠️ 异常消息是 alignment.toString() —— 即对齐枚举名(如 TOPLEFT),valid 字段不进消息。

两个访问器

方法 行 返回
getAlignment() :15 出错的对齐
isValid() :19 构造时传入的布尔

⚠️ isValid() 语义可疑:异常本身代表解析失败, 再带一个 valid 布尔。若 valid == true 表示「这个对齐是合法的」, 那抛异常就自相矛盾。更合理的解释是 valid 表示「失败是否可恢复 / 错误行是否有效」,但源码无注释, 无法从本类确定。

抛出方

TextParser 的 6 个方法声明 throws AlignmentException: lines / linesTail / line / values / valuesTail / value。

捕获方

InGameInfoCore.reloadConfig(:188)只判 parser.load(is) && parser.parse(format) 的布尔结果, 不区分异常类型。异常在 TextParser.parse 内部 被转成 false 返回,所以 getAlignment() / isValid() 在正常流程下没有读取点。

与 InvalidTokenException 的对比

异常 抛出方 携带信息
AlignmentException TextParser(语法阶段) Alignment + boolean
InvalidTokenException Tokenizer(词法阶段) String

⚠️ 两个异常没有共同基类,也不是 RuntimeException 的子类 —— 所以词法错误与语法错误需要分别 catch。

相关