Kotlin检查了例外情况

时间:2017-10-13 12:47:45

标签: java exception try-catch kotlin

由于Kotlin不支持检查异常,那么如何让程序员意识到方法可能会抛出异常

简单示例:

class Calculator (value: Int = 0) {

    fun divide (dividend: BigDecimal, divider: BigDecimal) : BigDecimal {
        return dividend / divider
    }
}

显然,divide方法可能抛出java.lang.ArithmeticException: Division by zero异常,并且库的创建者需要警告类的用户将调用放在try-catch子句中

Kotlin的意识机制是什么?

2 个答案:

答案 0 :(得分:5)

鉴于该语言没有明确的构造,唯一剩下的就是:隐式。

例如,通过放置javadoc,清楚地告诉用户该方法可能会向他抛出异常的原因/原因。或者您使用@Throws注释。

也许,kotlin团队可能会在某个时候添加编译器警告来弥补这一点(见here)。

答案 1 :(得分:1)

您可以返回Try,以便客户端可以调用isSuccess或isFailure http://www.java-allandsundry.com/2017/12/kotlin-try-type-for-functional.html

您还可以返回可为null的类型BigDecimal吗?这样客户就会知道该值可能不存在(除以零时,您可以返回null)。