这是一个用于检查素数的简单 Scala 代码。当我在命令提示符下编译时,我收到以下警告。我以为我不会关心警告。但它没有创建 .class 文件。有人可以分享此警告的含义吗?
警告:这会捕获所有 Throwables。如果这确实是有意的,请使用case _ : Throwable清除此警告。
object PrimeNumber extends App {
println("11 is prime number : " + checkPrimeNumber(11))
println("111 is prime number : " + checkPrimeNumber(111))
//Method for checking prime numbers between 1 and 100
def checkPrimeNumber(num: Int) = {
try {
if (num < 1 || num > 100)
throw new IllegalArgumentException("Number should be between 1 and 100")
else
isPrimeNumber(num)
} catch {
case e: IllegalArgumentException => e.printStackTrace()
case _ => println("Exception has occurred!")
}
}
//Non Functional Method for finding prime number
def isPrimeNumber(number: Int): Boolean = {
var i = 2
while (i <= number / 2) {
if (number % i == 0) {
return false
}
i += 1
}
true
}
}
Run Code Online (Sandbox Code Playgroud)
Throwable在 Java 中捕捉是危险的,在 Scala 中更是如此。相反,使用这个:
catch { case scala.util.control.NonFatal(e) => // do something }
见http://www.tzavellas.com/techblog/2010/09/20/catch-throwable-in-scala/
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |