Theseus 模组文档
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 内继续只增不破。