📜  在 Scala 中抛出关键字

📅  最后修改于: 2022-05-13 01:55:42.756000             🧑  作者: Mango

在 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") 

例子:

解释:
如果 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