“无用的表达”警告,我认为是不正确的

时间:2018-03-26 08:44:27

标签: scala intellij-idea

请考虑以下代码示例:

def cleanUpAdvertiserInAdtech(name: String)(implicit driver: WebDriver):Unit = {
    AdtechLoginPage.open
    AdtechLoginPage.login
    val attempt = Try {
      AdtechDashboardPage.openAdvertisers
      AdtechAdvertisersPage.deleteAdvertiserIfExists(name)
    }
    AdtechAdvertisersPage.logout
    attempt.get
  }

IntelliJ IDEA强调最后一行attempt.get,并说这是一个无用的表达式。我不确定我究竟为什么理解为什么因为这条线只返回Unit以防Try{...}中的一切都很好但是当出现问题时抛出异常。 你能解释一下吗?

1 个答案:

答案 0 :(得分:1)

由于attempt.get不仅会返回成功值,还会抛出失败例外:

  • 如果Try.get返回成功值,attempt.get将返回成功值,但它从未使用过。所以扔这个警告是正确的。
  • 如果Try.get失败,attempt.get会抛出Exception IDE 警告就会失效。

所以我认为 IDE 是正确的,以突出显示此警告( IDE 不知道是否会失败)。您应该更改Exception评估样式,例如使用:matchtry catch finally