Skip to content

Conversation

@Alienstemple
Copy link

No description provided.

Copy link
Contributor

@antonkazakov antonkazakov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет. оставил пару комментариев


private val _cat = MutableLiveData<Result<Cat>>()

private val exceptionHandler = CoroutineExceptionHandler { _, e ->
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SocketException нужно обработать в try/catch

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А CoroutineExceptionHandler его не поймает?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поймает, но идея следующая:

  1. try/catch или функция runCatching позволяет поймать ошибку и какой то фоллбек реалзиовать, например получил ошибку сети, сходил в БД или Мемкэш, и корутина дальше продолжит работать
  2. CoroutineExceptionHandler этот механизм уже когда корутина в терминальном состоянии, и например если упало какое-то исключение, которое никто не ожидал, можно его как то дефолтно обработать, например, показав алерт "что-то пошло не так" или просто в логер какой-то сложить

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants