kotlin 异常处理

本文探讨了在Kotlin中如何正确处理异常,避免程序崩溃。通过实例展示了try-catch-finally语句的使用,强调了不应忽视异常,而应将其妥善处理,以提升程序的健壮性和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跟java类似try {} catch(Exception e) {}finally{},写程序不要吃掉异常,要提示出来,吃掉异常的人是最无耻的.

尽管kotlin处理空指针异常很好,但是还有其他异常啊,都得需要处理好, 异常出现就程序崩溃了,老板会找你谈话的.

例如:

package com.testTryCatch

/**
 * Created by jingwen on 19/4/14.
 */

fun main(args: Array<String>) {
    var list:Array<String> = arrayOf("jingwen","zhulina","chengcheng")
    println(list[4])
}

执行结果:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
	at com.testTryCatch.TestKt.main(test.kt:10)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Process finished with exit code 1

 

上面代码必须修改,不然老板会收拾你的哦,最起码不能让程序崩溃,提示程序员赶紧把自己挖的深坑填上

 

package com.testTryCatch

/**
 * Created by jingwen on 19/4/14.
 */

fun main(args: Array<String>) {
    println("app start")
    try {
        var list:Array<String> = arrayOf("jingwen","zhulina","chengcheng")
        println(list[4])
    } catch(e: Exception) {
        e.printStackTrace()
    } finally {
        println("尽管有异常出现了,根本不耽误我finally 露脸,垃圾还得我来处理")
    }

    println("app end")
}
app start
尽管有异常出现了,根本不耽误我finally 露脸,垃圾还得我来处理
app end
java.lang.ArrayIndexOutOfBoundsException: 4
	at com.testTryCatch.TestKt.main(test.kt:11)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Process finished with exit code 0

 

try catch还是个表达式,可以给变量赋值的

package com.testTryCatch

/**
 * Created by jingwen on 19/4/14.
 */

fun main(args: Array<String>) {
    println("app start")
   var result= try {
        var list:Array<String> = arrayOf("jingwen","zhulina","chengcheng")
        println(list[4])
       0
    } catch(e: Exception) {
        e.printStackTrace()
       1
    } finally {
        println("尽管有异常出现了,根本不耽误我finally 露脸,垃圾还得我来处理")
    }

    println("是否异常:[1有异常,0无异常] app result:$result")
    println("app end")
}

执行结果:

app start
java.lang.ArrayIndexOutOfBoundsException: 4
	at com.testTryCatch.TestKt.main(test.kt:11)
尽管有异常出现了,根本不耽误我finally 露脸,垃圾还得我来处理
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
是否异常:[1有异常,0无异常] app result:1
app end
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

Process finished with exit code 0

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值