禁止使用 detekt 调用 error() 方法

问题描述 投票:0回答:1

我希望禁止使用

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
方法调用。

不确定我错过了什么。

kotlin static-analysis detekt
1个回答
0
投票

维护者的回应 https://github.com/detekt/detekt/discussions/6485

./gradlew clean detektMain detektTest
检查所有文件并解决我面临的问题。

© www.soinside.com 2019 - 2024. All rights reserved.