عملیات داده‌ها (data operations) همیشه succeed نیستن. این مهمه که به نوعی اطلاعاتی در مورد failure به دیگر لایه‌ها propagate (منتقل) بشه. یکی از گزینه‌ها برای این کار exception propagate هستش. به کمک suspend functionها می‌تونید repository رو در لایه UI یا domain از داخل بلاک try-catch صدا بزنین.

try {
	moviesRepository.setFavorite(id, isFavourite)
} catch (exception: Exception) {
	// handle exception
}

یکی دیگر از گزینه‌ها، اگه که از flows استفاده می‌کنین می‌تونین از عملگر catch استفاده کنین. یعنی خطاها رو داخل data layer، بگیرید (catch کنین) و سپس داده‌هایی که یا success یا failure هستن رو همراه با meaningful exception منتشر یا expose می‌کنیم. در هر حال، سروکله زدن با خطاها رو فراموش نکنین. خطاها اتفاق خواهند افتاد.

movies.catch { exception >
	// handle exception
} collect {
	// collect data
}