try / catch не устарело в Kotlin. Это по-прежнему работает по сути так же. Это просто не очень полезно при работе с асинхронными API-интерфейсами, предоставляемыми службами Firebase и Play.
Все API-интерфейсы Firebase являются асинхронными, поэтому необходимо проверять ошибки в обратных вызовах, которые вы прикрепляете к объекту Task, возвращенному из звонок. Это одинаково для Java и Kotlin. Возможно, вы захотите узнать больше о Task API , чтобы лучше разобраться с API-интерфейсами Firebase, которые возвращают Task для представления асинхронной работы. В показанном вами коде вы проверяете ошибки в слушателе onComplete, просматривая объект исключения в результате, если он не был успешным:
FirebaseAuth.getInstance().createUserWithEmailAndPassword(email,password)
.addOnCompleteListener() { it:Task<AuthResult>
if (!it.isSuccessful) {
val exception = it.exception
// do something with this exception, according to the Firestore API docs
}