status code가 200, 401, 500 등등에 따라서 액티비티나 프래그먼트에 토스트를 띄워주고싶습니다
class MyInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val response = chain.proceed(request)
val httpStatusCode = response.code
when (httpStatusCode) {
200 -> {
throw CustomHttpException("api 성공 테스트")
}
401 -> {
throw CustomHttpException("401 에러")
}
}
return response
}
}
class CustomHttpException(message: String) : Exception(message)
@HiltViewModel
class SearchViewModel @Inject constructor(
private val searchRepository : SearchRepository
) : ViewModel() {
fun getSearchResult(type : SearchType, searchText : String, page : Int) =
searchRepository.getSearchResult(type, searchText, page)
.catch { exception ->
if (exception is CustomHttpException) { }
}
}
현재 이렇게 써줘봤는데 앱이 크래시 납니다 throw하는 부분을 가리키고 있구요
캐치를 못하는거같은데.. 일부러 테스트 하려고 200일때도 throw를 해봤습니다
어떻게 인터셉터에서 status code에 따라서 상태를 캐치하고 토스트나 팝업 등 띄워줄 수 있을까요?