2017-11-29 9 views
-2

init関数で私はPersonオブジェクトを作成し、例外を持って、今私はcatch Javaのように進捗を停止したいと思います。どうしたらいいですか?どのようにinitブロックkotlinの例外を取得する

class Person { 
    val age: String = "10" 
    private lateinit var person: Person 

    init { 
     try { 
      person = get(2) 
     } catch (exception: Throwable) { 

     } 
     println("----------------do it $person.age") 
    } 

    fun get(i: Int): Person { 
     when (i) { 
      1 -> { 
       return Person() 
      } 
      else -> { 
       throw MyException("aaaaaaaaa") 
      } 
     } 
    } 
} 
+1

Javaのコンストラクタから 'return'することはできません。 –

答えて

2

インスタンスがinitでエラーのために作成することができない場合は、このエラーは抑制が、呼び出し側に委譲すべきではありません。だから、例外と "stopps"を自動的にinitキャッチしないでください。

関連する問題