线程中的异常" 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()
}
}
}
答案 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()
}