У меня есть бросаемый объект, и я хочу напечатать его трассировку стека в logcat с уровнем ведения журнала «Log.e
» (ошибка).Мой метод вызывает исключение, но трассировка стека выводится как предупреждение.
Вот мой код:
@Throws(RuntimeException::class)
fun throwErrorIfNotHttp (e: Throwable) {
if (e is HttpException) {
val code = e.code()
} else if (e is SocketTimeoutException) {
Log.e("time out", "time out")
} else if (e is IOException) {
Log.e("File error", "file error")
} else {
throw RuntimeException(e) // This should appear as error
}
}
Вот изображение исключения.
Редактировать
Моя функция расширения:
fun <T> Observable<Response<T>>.makeRequest(
context: Context,
executeOnError: ((Any?) -> Unit)? = null, executeOnSuccess: (T?) -> Unit
): Disposable? {
val disposable: Disposable = this
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
if (it.isSuccessful) {
executeOnSuccess(it?.body())
} else {
val error = getExceptionFromResponse(it, context)
handleError(error, context)
}
}, {
throwErrorIfNotHttp(it)
})
return disposable
}
Как сделать так, чтобы она отображалась по ошибкевкладка вместо предупреждения вкладка?