Junior
Оё шумо дар бораи ҳиерархияи хатоҳо дар Android маълумот доред?
sobes.tech AI
Ҷавоб аз AI
Бале, ман фаҳмидам. Иерархияи хато дар Android асос ёфтааст ба иерархияи стандартии истисноҳо дар Java.
Классҳои асосӣ:
Throwable: класс барои ҳамаи истисноҳо ва хатоҳо.Exception: класс барои рӯйдодҳои истисноӣ, ки одатан метавон онҳоро фатҳ ва коркард кард.Error: класс барои мушкилоти ҷиддӣ, ки одатан барнома наметавонад барқарор кунад (масалан, OutOfMemoryError, StackOverflowError).
Мирас:
ExceptionваErrorазThrowableмерос мегиранд.- Бисёре аз истисноҳои махсуси Android (масалан,
ActivityNotFoundException,SecurityException) азRuntimeExceptionмерос мегиранд, ки худ азExceptionмерос мегирад.RuntimeException"unchecked exception" аст, яъне онро бояд ба таври махсус коркард ё дар имзоии метод зикр накарда шавад.
Маҳзияти фаҳмидани:
- Имкон медиҳад, ки хато ва истисноҳоро дуруст коркард кард, пешгирӣ аз фурӯпошии барнома.
- Ба навиштани коди боэътимод ва муқовимат ба хато кӯмак мекунад.
- Дар ташхис ва таҳлили сабабҳои нокомӣ кӯмак мерасонад.
Маслиҳат барои коркард:
try {
// Коди, ки метавонад истисноро ба вуҷуд орад
val data = fetchDataFromNetwork()
} catch (e: Exception) {
// Коркарди истисно
Log.e("MyTag", "Хатои дар гирифтани маълумот: ${e.message}", e)
// Шояд, паёмро ба корбар нишон диҳед
} finally {
// Коди, ки дар ҳар ҳол иҷро мешавад
}