mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 14:17:30 +00:00
fix(extension): 在创建扩展对象时捕获异常.
为防止 Factory 抛出异常影响加载, 增强鲁棒性, 所以在创建实例时捕获异常, 并跳过抛出异常的 Factory. 目前还不能解决 Factory 初始化异常的问题, 等 MavenRepositoryFinder 更新后再修复.
This commit is contained in:
parent
1b538f7c1f
commit
d7b253186e
@ -88,9 +88,13 @@ internal class ExtensionLoader(
|
||||
ExtensionClassLoaderCleaner.getOrCreateExtensionClassLoader(extensionArtifact, extensionFile)
|
||||
val factories = mutableSetOf<LoadedExtensionEntry>()
|
||||
for (factory in extClassLoader.serviceLoader) {
|
||||
val extension =
|
||||
factory.createExtensionInstance(bot, getExtensionDataFolder(extensionArtifact))
|
||||
factories.add(LoadedExtensionEntry(extensionArtifact, factory::class.java, extension))
|
||||
try {
|
||||
val extension =
|
||||
factory.createExtensionInstance(bot, getExtensionDataFolder(extensionArtifact))
|
||||
factories.add(LoadedExtensionEntry(extensionArtifact, factory::class.java, extension))
|
||||
} catch (e: Exception) {
|
||||
log.error(e) { "创建扩展时发生异常. (ExtArtifact: `$extensionArtifact`, Factory: ${factory::class.java.name})" }
|
||||
}
|
||||
}
|
||||
return factories.toSet()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user