package com.ruoyi.datacollection.api; /** * 数据采集模块被关闭({@code sys_config: datacollection.enabled=false})时, * 门面调用抛出的异常。 * *

为什么需要它(而不是复用 {@code ServiceException})

* {@code ServiceException} 是 final 的(见 {@code com.ruoyi.common.exception.ServiceException}), * 既不能继承、也没有实现任何接口,因此无法"精确捕获"。 * 调用方({@code ruoyi-quartz} 的 {@code RyTask})需要把 * "模块被关掉"和"采集过程真的报错"区分开: * 前者只打一条 WARN 说明本轮跳过,后者要按原有错误口径记录 —— * 用 {@code ServiceException} 或比对 message 文本都会失准。 * *

为什么放在模块的 api 包,而不是 ruoyi-common

* 模板模块把 {@code TemplateModuleDisabledException} 放进 ruoyi-common, * 是因为它的调用点散在 4 个模块里。本模块目前只有 {@code ruoyi-quartz} 一个调用方, * 而 {@code ruoyi-quartz} 已经依赖本模块,所以放在 {@code api} 包即可(api 是本模块唯一对外包)。 * 将来若出现不依赖本模块的调用方,再下沉到 ruoyi-common。 * * @see DataCollectionFacade#requireEnabled() */ public class DataCollectionModuleDisabledException extends RuntimeException { private static final long serialVersionUID = 1L; /** * 关闭提示(与 {@code sys_config} 里那行配置的 remark 口径一致) */ public static final String DISABLED_MESSAGE = "数据采集模块未启用(参数配置 datacollection.enabled=false),本次采集已跳过"; public DataCollectionModuleDisabledException(String message) { super(message); } public DataCollectionModuleDisabledException(String message, Throwable cause) { super(message, cause); } }