请考虑以下代码示例:
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{...}
中的一切都很好但是当出现问题时抛出异常。
你能解释一下吗?
答案 0 :(得分:1)
由于attempt.get
不仅会返回成功值,还会抛出失败例外:
Try.get
返回成功值,attempt.get
将返回成功值,但它从未使用过。所以扔这个警告是正确的。Try.get
失败,attempt.get
会抛出Exception
, IDE 警告就会失效。 所以我认为 IDE 是正确的,以突出显示此警告( IDE 不知道是否会失败)。您应该更改Exception
评估样式,例如使用:match
或try catch finally
。