2017-11-29 2 views
-2

nach dem Code, in init Funktion Ich erstelle ein Person Objekt, und habe eine Ausnahme, jetzt möchte ich den Fortschritt in catch wie Java Return stoppen. Wie kann ich es tun?Wie bekomme ich eine Ausnahme in Init Block 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

Sie können auch nicht von einem Konstruktor in Java zurückkehren. –

Antwort

2

Wenn eine Instanz nicht aufgrund von Fehlern in init erstellt werden kann, sollte dieser Fehler nicht unterdrückt, sondern an den Anrufer übertragen werden. Also fangen Sie nicht die Ausnahme und die init "stoppt" automatisch.

Verwandte Themen