斯卡拉 |尝试捕获异常
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 子句的每个案例,并将与抛出的异常匹配的案例作为输出返回。