Exception 在Kotlin中生成异常的最短代码?

Exception 在Kotlin中生成异常的最短代码?,exception,kotlin,Exception,Kotlin,这是一个有趣的问题,但是Kotlin中最短的异常生成代码是什么?任何例外 比如: throw null!! 这将抛出一个NPE …但是,嘿,这仍然是一个相当长的队伍,有12个字符。 它实际上非常有用,用于测试分析中异常的日志记录等 到目前为止,我能想象的最短的时间是: ""[1] 5个字符,将导致StringIndexOutOfBoundsException:length=0;index=1这里还有一个更短的: 1/0 它以零抛出java.lang.arithmetricException

这是一个有趣的问题,但是Kotlin中最短的异常生成代码是什么?任何例外

比如:

throw null!!
这将抛出一个NPE

…但是,嘿,这仍然是一个相当长的队伍,有12个字符。
它实际上非常有用,用于测试分析中异常的日志记录等

到目前为止,我能想象的最短的时间是:

""[1]

5个字符,将导致
StringIndexOutOfBoundsException:length=0;index=1

这里还有一个更短的:

1/0

它以零抛出
java.lang.arithmetricException:/by zero

如果您不介意将一些实用程序代码放在可以使用此代码的地方:

e()
以及公用事业代码:

fun e() : Nothing = throw Exception()

Nothing
返回类型告诉编译器该函数将永远不会返回。

就字符数而言,您可以轻松声明一个属性,该属性具有引发异常的getter函数:

val T: Nothing
    get() = throw Exception("For testing purpose!!")
提醒:此代码的用法可能应该在使用后立即删除,因为它没有任何意义


如果您只是想键入更少的字符,我建议为此创建一个新的字符串。

我不认为保存几个字符比
throw()
@chris更划算。有时,抛出异常的实用程序函数比多次编写相同的长异常消息要方便得多将已经抛出异常,不需要在it@msrd0当然,在信息上保留重复是完全可以的。试图混淆代码以引发异常,因为您不想键入异常名称。@chris但将详细的
throw WhatsoeverException(“描述性消息”)
替换为
where()
肯定会降低可读性,特别是那些来自java的人,他们不熟悉kotlin类型
Nothing
。或者你认为
map[“key”]:which()
做什么是显而易见的?