基本例外
class BaseException(private val classname: String) : Exception() {
override fun setStackTrace(stackTrace: Array<out StackTraceElement>) {
val trace = arrayOf(StackTraceElement(classname, "methodNameOfExe", classname, 10))
super.setStackTrace(trace)
}
}
測驗類
{
....
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, viewType: Int) {
try {
setOnBindViewHolder(viewHolder, viewType)
} catch (e: BaseException("Test")) { //compiler error for BaseException constructor
....
}
}
...
如果我試圖傳遞 String arg,編譯器錯誤即將到來
uj5u.com熱心網友回復:
這不是正確的做法,分配型別時不能傳遞引數。
以以下為例:
val foo : String
在這里,我指定我的變數foo是字串型別,對嗎?這正是這個宣告正在做的事情:
catch (e: Exception)
你說的e是 type Exception,你不能在這里創建一個新實體。
這意味著您應該將代碼更改為如下所示:
catch (e: BaseException) {}
然后在你需要使用它的地方,你會做類似的事情:
throw BaseException("Test"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454116.html
