
Kotlin异常简介
Kotlin异常是运行时问题之一,它主要发生在不满足条件的程序中,可能是默认类的方法、变量和其他关键字,Kotlin语言使用了未检查类型的异常,可以在运行时代码执行中借助throw关键字来抛出。所以我们可以处理项目中需要的自定义异常,kotlin只支持未检查的异常。因此,它属于所有它捕捉到的异常,并通过使用kotlin语言编译器检查和执行代码来强制执行。
Kotlin 异常的语法
Kotlin语言使用许多默认的关键字、变量和其他内置函数来实现基于移动的应用程序。像这样,异常是语言中使用的功能之一,由catch块处理。
fun main()
{
try
{
--some logic codes—
}
catch(e:Exception)
{
--some codes—
}
---some logic codes depend upon the requirement---
}
上面的代码是使用try-catch块来处理异常的基本语法。我们也可以使用throw关键字来抛出自定义的异常,如果需要的话,这些异常也会在catch块中处理。
异常在Kotlin中是如何工作的?
- 一般来说,异常是由编译器处理的运行时问题,发生在程序中。它可能发生在任何类型,如内存空间、数组索引超出边界的异常,以及其他条件。Kotlin语言接受未检查的异常,如Arithmetic、ArrayIndexOutOfBoundExceptions、Security Exception和NullPointer Exception;这些是kotlin语言处理的未检查的异常。
- 整数可能是用0号除以的;这个异常会被抛出,属于算术异常。它还有其他不同类型的异常,如IOException等。这些异常是随着每一个可以被认为是和kotlin语言上畸形的操作而进行的。如果我们想创建自定义的异常,我们可以创建我们的异常,通过特定的关键字如throw、catch和其他块如finally等进行验证和利用。根据项目的要求,每个块都有自己有效的检查和未检查的异常。
- 异常表明了代码中的问题或议题,可以使用jtest等工具捕捉索引,以测试原理。我们可以使用关于运行时问题和程序执行的异常处理机制来处理这些异常。
Kotlin异常的例子
下面给出的是Kotlin异常的例子。
例子#1
代码
package one
abstract class Planet(planetname:String){
abstract var name: String
abstract fun planetdetails()
init {
println("Planet name is: $name")
}
fun firstplanet(){
println("Thank you the Planet name is")
}
}
interface commonplanet {
var vars: String
fun earth():String
fun mars() {
println("Have a Nice day users")
}
}
class sun : commonplanet {
override var vars: String = "pluto"
override fun earth() = "jupiter"
}
class venus(planetname:String): Planet(planetname) {
override var name: String = "July"
override fun planetdetails() {
println("Thank you users your Planet is $name")
}
}
fun main() {
val m2 = venus("May")
println("Your current Planet is : ${m2.name}")
m2.planetdetails()
val j = sun()
println("Your latest Planet is = ${j.vars}")
print("Keep on spent the time with our application: ")
j.mars()
print("Nice day users ")
println(j.earth())
try{
println("Thank you users your planet details under exception")
throw Exception("Its having some issue please try later")
println("After getting all the details we got a exception")
}
catch(e: Exception){
println(e)
}
finally{
println("Kindly spent with time with our application and try it again")
}
}
输出

在上面的例子中,我们使用了普通的异常,比如java.lang.exception,如果用户输入的数据无效,就会被抛出。
例子#2
代码
package one;
class second {
companion object {
const val sample = "Welcomeusers"
}
fun demo() = sample;
var x = 0;
fun demo1(i: Int): Int {
return 6 * i
}
fun demo4(i: Int): Int {
return 6 * i + 1
}
fun demo4(y: Array<Int>, i: Int, j: Int) {
var z = y[i] y[i] = y[j] y[j] = z
}
fun demo4(y: Array<Int>, i: Int) {
var eg = demo1(i);
var eg1 = demo4(i);
var eg2: Int;
if ((eg <= x - 1) && (y[eg] > y[i])) {
eg2 = eg;
} else
eg2 = i
if ((eg1 <= x - 1) && (y[eg1] > y[eg])) {
eg2 = eg1
}
if (eg2 != i) {
demo4(y, i, eg2);
demo4(y, eg2);
}
}
fun demo1(y: Array<Int>) {
x = y.size
for (i in x / 2 downTo 0) {
demo4(y, i)
}
}
fun demo(y: Array<Int>) {
demo1(y)
for (i in y.size - 1 downTo 1) {
demo4(y, i, 0)
x = x - 1
demo4(y, 0)
}
}
}
fun main(arg: Array<String>) {
try{
println("Welcome To My Domain its the second example regarding kotlin exception")
println("Please enter your valuable inputs for to perform the sorting operations:")
var p = readLine()!!.toInt()
println("Enter your input datas so that sorting operation will be performed ")
var y = Array(p, { 0 })
for (i in 0 until p)
y[i] = readLine()!!.toInt()
var q = second();
q.demo(y)
println("Welcome To My Domain its y second sample for regarding the kotlin static concept")
for (i in 0 until p)
print("${y[i]} ")
}
catch(e:Exception)
{
println(e)
}
}
输出


在第二个例子中,我们使用了额外的操作,如数字格式异常,同时输入字符串值而不是int数字。
例子#3
代码:
package one;
fun main(arg: Array<String>) {
var a= "Welcome Users its a third example regarding exception"
var b = try { a.toInt() } catch (e: NumberFormatException) { "Sorry users it accepts only string values" }
println(b)
a = "89"
b = try { a.toInt() } catch (e: NumberFormatException) { "Thank you users its a string value" }
println(b)
try {
var d = 9 / 0
val f = "Have a Nice Day users"
f.toInt()
} catch (e: ArithmeticException) {
println("Arthimetic Exception")
} catch (e: Exception) {
println("Exception occurred please find the stack trace print using e")
} finally {
println("Thank you for spending the time with us")
}
}
输出

在最后一个例子中,我们计算了排序操作,也进行了算术操作,我们得到了算术异常。
总结
在kotlin语言中,我们使用了额外的操作和功能来实现应用程序;在执行应用程序后,我们得到了一些有效的异常和错误,而输入没有被验证或不满足于编码逻辑。在异常概念的帮助下,我们可以越过这些异常,同时它也接受一些自定义的异常。