飴屋

Kotlin/あとでやる

いつか実装しなくちゃならないけど、別の優先度の高い作業を先に進めたいときなんかによくコメントで

// TODO:あとでやる~」

↑こんな風に書いておいたりします。KotlinはTODOという関数でこれを明示できるそうです。interfaceを実装しようとしたらAndroid Studioでは

adapter.SetOnCardClickListener(
    object:RecyclerAdapter.OnCardClickListener {
        override fun onItemClick(card: DB.Card) {
            TODO("Not yet implemented")
        }

        override fun onItemLongClick(card: DB.Card) {
            TODO("Not yet implemented")
        }

    }
)

↑こんな風に自動的に未実装部分にTODOを書いてくれました。

IDEだとTODOをピックアップして一覧表示してくれたりもするので、やんなきゃならないことが一目でわかるのもいいですね。

で、デバッグ中にTODOの部分に処理が到達したら、アプリが落ちてビックリしました。何だろうと思ってデバッグログを眺めてみると、TODO関数が例外を返してました。

kotlin.NotImplementedError: An operation is not implemented: Not yet implemented

なるほど、TODOはログ出力して素通りするのではなく、例外を返すのですね。それで例外を拾って処理しないとアプリは終了すると。使い方を把握しました。

そういえばまだ、例外処理って書いたことないなぁ。Javaのときほど書かなくていいような言語設計のせいでしょうか。