Kotlin数据库连接错误

时间:2016-05-29 22:18:22

标签: database jdbc kotlin

线程中的异常" main" Kotlin.main上的kotlin.KotlinNullPointerException(DB.kt:4)

任何人都可以解释我这是什么以及我该怎么做来处理这个例外?

object Kotlin {
    @JvmStatic fun main(args: Array<String>) {
        val conn: Connection = null!!
        val url = "jdbc:mysql://localhost:3306/"
        val dbName = "db-01"
        val driver = "com.mysql.jdbc.Driver"
        try {
            Class.forName(driver).newInstance()
            conn = DriverManager.getConnection("jdbc:mysql://localhost/student")
            println("Connected to the database")
            conn.close()
            println("Disconnected from database")
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }
}

2 个答案:

答案 0 :(得分:2)

word = raw_input("enter a word") word[0].upper()

如果值不是val conn: Connection = null!!,则!!'将可空类型强制转换为非null类型。如果是null,则会抛出null

因此,执行NullPointerException会产生null!! 相反,请使用NullPointerException,或使lateinit var可以为空。

答案 1 :(得分:1)

如果您以后要初始化本地val,那么完全没有问题:

fun main(args: Array<String>) {
    val conn: Connection
    // ... some code ...
    conn = DriverManager.getConnection("jdbc:mysql://localhost/student")
}

如果您不需要try块之外的连接,您可以声明它并在同一行初始化它:

try {
    //...
    val conn = DriverManager.getConnection("jdbc:mysql://localhost/student")
    //...
    conn.close()
} catch (e: Exception) {
    e.printStackTrace()
}