Здравствуйте, что не так с exception? Не выкидывается никак. Основная идея функции добавить label и выкинуть exception, если такого нет в общем списке labels.
fun addLabel(labelId: String): BlockLabel {
if (!isInitial()) {
throw ContentUneditableException()
}
val label: BlockLabel = (_labels.find {
it.id == labelId }
?. also { _labels.add(it) } ?: LabelNotFoundException()) as BlockLabel
return label
}