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 -nowarn main.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 = "Tutorialspoint.com";
v.toInt();
}
catch(e:Exception) {
e.printStackTrace();
}
finally {
println("Exception Handeling in Kotlin");
}
}输出
执行以上代码段后,它将产生以下输出 -
$kotlinc -nowarn main.kt -include-runtime -d main.jar $java -Xmx128M -Xms16M -jar main.jar Exception Handeling in Kotlin java.lang.NumberFormatException: For input string: "Tutorialspoint.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)
{
//throwing custom exception instead of other checked Exception
throw myCustomException("Invalid Inputs - Please enter a correct number")
}
else
{
println("Welcome !! you have entered a correct value")
}
}
//declaring custom exception class
class myCustomException(message: String) : Exception(message)输出
当我们执行此代码时,它将产生以下输出。您可以观察到我们正在抛出我们的自定义异常以及传递的消息。
$kotlinc -nowarn main.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)
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP