InvalidTokenException
非法 token 异常
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.github.lunatrius.ingameinfo.parser.text.InvalidTokenException |
| 行数 | 8(本 mod 最短的 Java 文件之一) |
全文
package com.github.lunatrius.ingameinfo.parser.text;
public class InvalidTokenException extends Exception {
public InvalidTokenException(String string) {
super(string);
}
}
单行构造
只把传入的 String 交给 Exception(String) 作为消息,
不保留 token 对象、不保留位置。
⚠️ 因此异常消息里的行列信息必须由抛出方手工拼进字符串 —— Tokenizer 持有 Location,可以做到; 但 TextParser 走的是 AlignmentException,那条路径没有位置信息 (见该条目)。
继承 Exception(受检)
所以 Tokenizer.tokenize 必须 throws Exception
(它确实这么声明,:18),而 TextParser.load 必须 catch。
⚠️ 没有无参构造,也没有 (String, Throwable) 构造 ——
无法包装底层异常。
抛出方
Tokenizer.tokenize(:18-56)在当前位置
匹配不到任何 Token 的 getPattern() 时抛出。
相关
- Tokenizer - 唯一抛出方
- AlignmentException - 并列的另一个异常(语法阶段)
- Token - 正则来源