API 参考 / 入口与生命周期
MissingDependencyException
模组依赖异常。当模组声明的 dependsOn 中有未注册或未启用的模组 id 时,宿主在加载规划阶段创建此异常并记入加载错误,模组状态标记为 ModLoadStatus.LOAD_FAILED;硬依赖成环时也用同一类型表示。
方法速览
| 方法 | 用途 |
|---|---|
MissingDependencyException(List<String>) | 缺失依赖构造 |
circular(List<String>) | 循环依赖静态工厂 |
getMissing() | 缺失的模组 id 列表 |
getCircularChain() | 环上的模组 id 列表 |
完整签名
java
public class MissingDependencyException extends RuntimeException {
public MissingDependencyException(List<String> missing);
public static MissingDependencyException circular(List<String> circularChain);
public List<String> getMissing();
public List<String> getCircularChain();
}MissingDependencyException(List missing)
签名:
java
public MissingDependencyException(List<String> missing);行为:缺失依赖构造,消息形如 Missing dependencies: [A, B](List.toString)。circularChain 置为空列表。传入列表按引用保存,不拷贝。
示例:
java
throw new MissingDependencyException(List.of("core_lib"));circular(List circularChain)
签名:
java
public static MissingDependencyException circular(List<String> circularChain);行为:循环依赖静态工厂,消息形如 Circular dependency: A -> B -> A;missing 置为空列表,getCircularChain() 返回传入的链(首尾相同,如 ["A","B","A"])。环上模组全部记入加载错误、不激活。
示例:
java
MissingDependencyException ex = MissingDependencyException.circular(List.of("a", "b", "a"));getMissing()
签名:
java
List<String> getMissing();行为:返回缺失的模组 id 列表;循环依赖构造时为空列表。返回的是构造时传入的同一引用。
示例:
java
List<String> missing = ex.getMissing();getCircularChain()
签名:
java
List<String> getCircularChain();行为:返回环上的模组 id 列表(首尾相同);缺失依赖构造时为空列表。
示例:
java
List<String> chain = ex.getCircularChain();线程:源码未声明额外线程约束。
稳定性:2.0 起冻结:2.x 内只增不破(禁止删签名 / 改签名 / 改语义);破坏性变更只在 major 版本发生且须提供迁移指南与至少一个大版本的弃用期。3.x 内继续只增不破。