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。
相关
- TextParser - 抛出方
- InvalidTokenException - 并列的另一个异常
- Alignment -
getAlignment的返回类型