Scala throw关键字

Scala throw关键字

Scala中的throw关键字用于从方法或任何代码块中明确地抛出一个异常。在Scala中,throw关键字用于明确地抛出异常并捕获它。它也可以用来抛出自定义的异常。java和scala中的异常处理是非常相似的。除了scala将所有类型的异常都视为运行时异常,因此它不强迫我们处理它们,而是在catch块中使用模式匹配。如果结果不会被评估为任何东西,我们可以用它来代替任何其他表达式。

重要的事情要记住

  • 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程