Я использую «Дооснащение» для передачи http.Модернизация: Пользовательский ErrorHandler, UndeclaredThrowableException
И я сделал обычай ErrorHandler
, как показано ниже.
public class CustomErrorHandler implements ErrorHandler {
@Override
public Throwable handleError(RetrofitError cause) {
if (RetrofitError.Kind.NETWORK == cause.getKind()) {
Throwable throwable = cause.getCause();
if (throwable instanceof SocketTimeoutException)
return throwable;
else if (throwable instanceof ConnectException)
return throwable;
}
return cause;
}
}
При попытке отладки, throwable
является экземпляром SocketTimeoutException
или ConnectException
в CustomErrorHandler.handleError()
.
Но, ниже fucntion throws UndeclaredThrowableException
.
private SignOutSuccessResponse trySignOut(String email, String userToken) throws Exception {
RestAdapter.Builder builder = new RestAdapter.Builder();
builder.setEndpoint(ServerInfo.END_POINT_API);
builder.setErrorHandler(new CustomErrorHandler());
if (BuildConfig.DEBUG)
builder.setLogLevel(RestAdapter.LogLevel.FULL);
API sessionAPI = builder.build().create(API.class);
return sessionAPI.signOut(email, userToken);
}
Как решить эту проблему не this way?
Я использую
- Android студия
- дооснащения 1.7.1
- OkHttp 2.0.0
Пожалуйста, помогите мне ㅠㅠ
О, я не знал, что 'SocketTimeException' и' ConnectException' являются «проверенными исключениями». Спасибо! –