Tag: 异常

Kotlin Android Button.onClickListener导致NoSuchMethodError

我想我已经找到了一个使用kotlin for android的怪癖,或者在我对语法的理解上存在一些空白。 试图为一个按钮设置一个onClickListener是抛出一个NoSuchMethodError 这是错误的代码 button.setOnClickListener(Button.OnClickListener { fun onClick(view: View){ val intent : Intent = Intent(this,DetailActivity::class.java) if(obj is String) { intent.putExtra("Topic", obj) } startActivity(intent) } }) 这里是输出的堆栈跟踪 java.lang.NoSuchMethodError: No static method OnClickListener(Lkotlin/jvm/functions/Function1;)Landroid/view/View$OnClickListener; in class Landroid/widget/Button; or its super classes (declaration of 'android.widget.Button' appears in /system/framework/framework.jar:classes2.dex) 任何人都知道吗?

Gradle项目:java.lang.NoClassDefFoundError:kotlin / jvm / internal / Intrinsics

我正在开发一个Java项目,在这个项目中,我第一次尝试了Kotlin。 我开始使用Intellij Idea中提供的JavaToKoltin转换器将一些类转换为Kotlin。 其中我的自定义例外现在转换为Kotlin。 但是,这个异常处理不再正确工作了。 如果我在java代码中抛出一个自定义异常(例如MyCustomKotlinException.kt ),那么这个异常不会被捕获(见下面的代码)。 // Example.java package foo import java.util.*; import java.lang.*; import java.io.*; import foo.MyCustomKotlinException; class Example { public static void main (String[] args) { try { // Do some stuff // if Error MyCustomKotlinException e = new MyCustomKotlinException("Error Message"); throw e; } catch (MyCustomKotlinException e) { // <– THIS PART […]

在Kotlin中测试预期的例外

在Java中,程序员可以为JUnit测试用例指定预期的异常,例如: @Test(expected = ArithmeticException.class) public void omg() { int blackHole = 1 / 0; } 我如何在Kotlin做这个? 我已经尝试了两种语法变体,但都没有工作: import org.junit.Test as test // … test(expected = ArithmeticException) fun omg() Please specify constructor invocation; classifier 'ArithmeticException' does not have a companion object test(expected = ArithmeticException.class) fun omg() name expected ^ ^ expected ')'

Kotlin检查了例外情况

由于Kotlin不支持检查异常,所以如何让程序员意识到一个方法可能会抛出异常 简单的例子: class Calculator (value: Int = 0) { fun divide (dividend: BigDecimal, divider: BigDecimal) : BigDecimal { return dividend / divider } } 显然,除法方法可能会抛出java.lang.ArithmeticException: Division by zero异常,并且库的创建者需要警告类的用户将调用置于try-catch子句中 Kotlin的这种意识的机制是什么?