首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过CoroutineExceptionHandler注册ServiceLoader?

如何通过CoroutineExceptionHandler注册ServiceLoader?
EN

Stack Overflow用户
提问于 2020-09-18 05:42:28
回答 1查看 342关注 0票数 1

CoroutineExceptionHandler Kdoc说:

默认情况下,当未安装处理程序时,未安装异常的处理方式如下: 如果异常为CancellationException,则忽略它(因为这是取消运行协同线的假定机制) 否则: 如果上下文中有作业,则调用Job.cancel; 否则,通过CoroutineExceptionHandler和当前线程的Thread.uncaughtExceptionHandler找到的所有实例都会被调用。

还没有提供关于“通过CoroutineExceptionHandler发现的所有ServiceLoader实例”的详细信息( Kotlin只接触冰山一角并不少见)。这是怎么做的?

我知道Thread.uncaughtExceptionHandler的事,这不是问题所在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-19 05:18:50

在这里,基于@amamin的评论和使用Java平台创建可扩展应用程序的文章,我们找到了答案。

要注册提供程序,必须在JAR文件的META/services目录中创建一个提供程序配置文件。配置文件名应该是服务类型的完全限定的二进制名称。二进制名称只是一个完全限定的类名,在这个类名中,名称的每个组件都由一个。字符,嵌套类由$字符分隔。 例如,如果您实现了META-INF/services/com.example.dictionary.spi.Dictionary服务类型,那么您应该创建一个com.example.dictionary.spi.Dictionary文件。在文件中的单独行中,列出具体实现的完全限定二进制名称。

回到我的问题上,我需要创建一个带有一行的META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler文件,即实现的FQN。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63949942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档