Tag: 例外

Kotlin – 异常后继续协程

我的问题 异常之后是否可以继续执行协程? 例 try { someMethod1() someMethod2() //Throws an exception! someMethod3() } catch(e: Exception) { //I do not want to call someMethod3 here! //I want the coroutine to resume after the exception inside of the original block. } finally { //I also do not want to call someMethod3 here! //I want the coroutine to resume […]

Kotlin的构造函数属性并调用不同的超类构造函数

我想使用kotlin数据类作为例外,这似乎很好: data class MyException(val extraData: Any) : RuntimeException() 我也希望在存在这样的情况下能够把cause传给超类。 不幸的是,数据类只能在他们的主要构造函数中有val / var ,并且由于默认的构造函数调用了无参数RuntimeException()构造函数,所以似乎我根本无法做到这一点,总是要求传递并存储为在我的班级,我不想要的领域。 我想要的是这样的: data class MyException(val extraData: Any) : RuntimeException() { constructor(extraData: Any, cause: Throwable) : this(extraData) super(cause) {} } 看来,即使我不使用数据类,我仍然不能使用方便的var / val构造函数助手,因为他们只能在主要的构造函数,必须选择使用哪个超级构造函数。 我能想到的最好的是这个,这是非常冗长的: class MyException : RuntimeException { val extraData: Any constructor(extraData: Any) { this.extraData = extraData } constructor(extraData: Any, cause: Throwable) : […]

有什么简单的方法来看看Kotlin函数抛出什么异常?

我主要了解检查异常的潜在问题,以及Kotlin忽略它们的原因。 然而,我遇到的问题是我找不到任何清楚地向调用者指出函数可能抛出什么异常的万无一失的方式。 我已经在Python中遇到了无数次的问题,我的程序在运行好几个月后会崩溃,因为我没有意识到我正在使用某个库的函数会引发特定的异常。 尽管被迫捕捉异常可能是相当有问题的,但是清楚地看到函数可能抛出的所有可能异常是很好的。 所以回到这个问题,有什么简单的方法来看看函数在Kotlin中抛出什么异常? 那么从Kotlin调用Java编写的方法呢? 即使只是在工具(intelliJ)。 我不想把它写在javadoc或kdoc中,因为你正在使用的函数的编写者可能会忽略它。

Kotlin – 抛出自定义异常

我怎样才能在Kotlin中抛出一个自定义异常? 我真的没有那么多的文件… 在文档中,描述了每个异常需要的内容,但是我如何实现呢?