Scala Try-Catch 异常
Scala中的 Try-Catch 结构与Java不同,Scala中的Try-Catch是一个表达式,Scala在catch子句中使用了模式匹配。假设我们要实现一系列可以抛出异常的代码,如果我们想控制这个异常,那么我们应该利用Try-Catch段,因为它允许我们在一个块中尝试捕获每一种类型的异常,我们需要在catch中写一系列的case语句,因为Scala使用匹配来分析和处理异常。
- 示例 :
// Scala program of try-catch
// exception
// Creating object
object Arithmetic
{
// Main method
def main(args: Array[String])
{
// Try clause
try
{
// Dividing a number
val result = 11/0
}
// Catch clause
catch
{
// Case statement
case x: ArithmeticException =>
{
// Display this if exception is found
println("Exception: A number is not divisible by zero.")
}
}
}
}
输出:
Exception: A number is not divisible by zero.
在这里,由于一个数字不能被零整除,所以抛出了一个异常。
- 示例 :
// Scala program of Try-Catch
// Exception
import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException
// Creating object
object GfG
{
// Main method
def main(args: Array[String])
{
// Try clause
try
{
// Creating object for FileReader
val t = new FileReader("input.txt")
}
// Catch clause
catch
{
// Case statement-1
case x: FileNotFoundException =>
{
// Displays this if the file is
// missing
println("Exception: File missing")
}
// Case statement-2
case x: IOException =>
{
// Displays this if input/output
// exception is found
println("Input/output Exception")
}
}
}
}
输出:
Exception: File missing
在这里,首先执行try块,如果有任何异常被抛出,则检查catch子句中的每个情况,并将与抛出的异常相匹配的情况作为输出返回。