由于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的意识机制是什么?
答案 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)。