在 Kotlin 中引发自定义异常

异常是任何编程语言的一个重要方面。它可以防止我们的代码在运行时生成不正确的输出。

Kotlin 中的异常概念与 Java 中的异常概念非常相似。Kotlin 中的所有异常都是Throwable类的后代。在 Kotlin 中,开发人员确实有权创建自己的自定义异常。

自定义异常是未经检查的异常的一部分,这意味着它们将在运行时抛出。

在进入 Kotlin 中的自定义异常之前,让我们看一下检查和未检查的异常。

检查异常

已检查异常是在编译时检查的异常。在下面的示例中,我们生成了一个检查异常。FileNotFoundException 或 IOException 是已检查的异常。

示例

import java.io.File

import java.io.InputStream

fun main(args: Array<String>) {

   try {

      val inputStream: InputStream = File("Hello.txt").inputStream()

   }

   catch(e:Exception) {

      e.printStackTrace();

   }

}

输出结果

执行上述代码后,它将生成以下输出。您可以看到,在编译时,我们将检查的异常作为输出。

$kotlinc -nowarnmain.kt-include-runtime -d main.jar

$java -Xmx128M -Xms16M -jar main.jar

java.io.FileNotFoundException:Hello.txt(No such file or directory)

   at java.io.FileInputStream.open0(Native Method)

   at java.io.FileInputStream.open(FileInputStream.java:195)

   at java.io.FileInputStream.(FileInputStream.java:138)

   at MainKt.main(main.kt:6)

未经检查的异常

未经检查的异常是在编译时未检查的异常;相反,它们将在运行时抛出。在下面的示例中,我们将生成一个未经检查的异常。我们可以将 ArithmeticException、NumberFormatException 中的任何一个视为未经检查的异常的示例。

示例

fun main(args: Array) {

   try {

      val myVar:Int = 12;

      val v:String = "Nhooo.com";

      v.toInt();

   }

   catch(e:Exception) {

      e.printStackTrace();

   }

   finally {

      println("Exception Handeling in Kotlin");

   }

}

输出结果

一旦我们执行上面的代码,它将产生以下输出 -

$kotlinc -nowarnmain.kt-include-runtime -d main.jar

$java -Xmx128M -Xms16M -jar main.jar

Exception Handeling in Kotlin

java.lang.NumberFormatException: For input string: "Nhooo.com"

   at java.lang.NumberFormatException.forInputString(NumberFormatExc eption.java:65)

   at java.lang.Integer.parseInt(Integer.java:580)

   at java.lang.Integer.parseInt(Integer.java:615)

   at MainKt.main(main.kt:5)

Kotlin 中的自定义异常

我们将使用一个非常简单的示例创建自己的自定义异常。在此示例中,我们声明一个变量并检查该变量值是否小于 50。根据结果,我们将使用 Kotlin 内置功能引发自定义异常。

示例

fun main(args: Array) {

   val sampleNumber:Int;

   sampleNumber = 100;

   if(sampleNumber > 50)

   {

      //抛出自定义异常而不是其他检查异常

      throw myCustomException("Invalid Inputs - Please enter a correct number")

   }

   else

   {

      println("Welcome !! you have entered a correct value")

   }

}

//声明自定义异常类

class myCustomException(message: String) : Exception(message)

输出结果

当我们执行此代码时,它将产生以下输出。您可以观察到我们将自定义异常与传递的消息一起抛出。

$kotlinc -nowarnmain.kt-include-runtime -d main.jar

$java -Xmx128M -Xms16M -jar main.jar

Exception in thread "main" myCustomException: Invalid Inputs -

Please enter a correct number

at MainKt.main(main.kt:7)

以上是 在 Kotlin 中引发自定义异常 的全部内容, 来源链接: utcz.com/z/297060.html

回到顶部