在 Scala 中抛出关键字
Scala 中的 throw 关键字用于显式地从方法或任何代码块中抛出异常。在 Scala 中,throw 关键字用于显式地抛出异常并捕获它。它也可以用来抛出自定义异常。 Java和 scala 中的异常处理非常相似。除了 scala 仅将所有类型的异常视为运行时异常,因此它不会强制我们处理它们,而是在 catch 块中使用模式匹配。 throw 是一个在 scala 中没有结果类型的表达式。如果结果实际上不会计算为任何东西,我们可以使用它来代替任何其他表达式。
要记住的重要事项:
- Throw 表达式的返回类型为 Nothing。
- Throw 是用于抛出异常的关键字,而 throws 是用于声明异常的关键字。
- Catch 块使用模式匹配来处理异常
句法:
throw exception object
Example:
throw new ArithmeticException("divide by 0")
例子:
val x =
if (n % 10 == 0)
5
else
throw new RuntimeException(“n must be a multiple of 10”)
解释:
如果 n 是 10 的倍数,则将 5 分配给 x,但如果 n 不是 10 的倍数,则在 x 可以初始化为任何东西之前抛出异常。因此,我们可以说 throw 具有任何类型的值。在 scala 中,抛出异常与Java相同。我们创建一个异常对象,然后使用 throw 关键字将其抛出:
例子:
// Scala program of throw keyword
// Creating object
object Main
{
// Define function
def validate(article:Int)=
{
// Using throw keyword
if(article < 20)
throw new ArithmeticException("You are not eligible for internship")
else println("You are eligible for internship")
}
// Main method
def main(args: Array[String])
{
validate(22)
}
}
输出:
You are eligible for internship
在上面的代码中,如果我们的文章少于 20 则我们没有输出。
当发生错误时,scala 方法可以抛出异常而不是正常返回。在下面的示例中,我们观察到一个从函数抛出的异常。
// Scala program of throw keyword
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
try
{
func();
}
catch
{
case ex: Exception => println("Exception caught in main: " + ex);
}
}
// Defining function
def func()
{
// Using throw exception
throw new Exception("Exception thrown from func");
}
}
输出:
Exception caught in main: java.lang.Exception: Exception thrown from func