我希望禁止使用
error()
方法。
我的目标是禁止使用通用异常。如果代码明确抛出错误,我可以使用规则
TooGenericExceptionThrown
。然而,当人们使用error
方法时。这是在标准 kotlin 库中定义的。
public inline fun error(message: Any): Nothing = throw IllegalStateException(message.toString())
它不会被
TooGenericExceptionThrown
抓住。
我尝试启用
ForbiddenMethodCall
,如下所示
ForbiddenMethodCall:
active: true
methods:
- 'kotlin.io.print'
- 'kotlin.io.println'
- 'kotlin.error(kotlin.Any)'
- 'error(kotlin.Any)'
- 'error()'
- 'error'
- 'kotlin.error'
当我在命令行中运行
./gradlew detektMain
时,虽然它捕获了 print
和 println
的使用,但它没有捕获 error
方法调用。
不确定我错过了什么。
维护者的回应 https://github.com/detekt/detekt/discussions/6485
./gradlew clean detektMain detektTest
检查所有文件并解决我面临的问题。