Tôi đang sử dụng trang bị thêm để lấy và đăng dữ liệu từ máy chủ. Tuy nhiên, nếu điện thoại của tôi mất kết nối internet ở giữa ứng dụng thì tôi thấy lỗi như sau:Làm thế nào để xử lý java.net.UnknownHostException trong khi sử dụng trang bị thêm
05-10 08:12:05.559 29369-29400/? D/Retrofit﹕ java.net.UnknownHostException: Unable to resolve host "my.server.com": No address associated with hostname
at java.net.InetAddress.lookupHostByName(InetAddress.java:394)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
at java.net.InetAddress.getAllByName(InetAddress.java:214)
Tôi muốn xử lý lỗi này một cách duyên dáng. Tôi muốn bắt ngoại lệ và hiển thị thông báo chúc mừng như "Không có kết nối internet".
Tôi đang cố gắng mã như thế này nhưng tôi nhận được một lỗi rằng: java.net.UnknownHostException is never thrown in the try block
try {
isTokenValid = MyManager.INSTANCE.getService().validate();
}
catch (RetrofitError cause) {
Response r = cause.getResponse();
if (r != null && r.getStatus() == 403) {
isTokenValid = false;
}
}
catch (UnknownHostException exception) {
Toast.makeText(getBaseContext(), "No internet connection", Toast.LENGTH_SHORT).show();
}
Ngay bây giờ, error.isNetworkType() không còn được dùng nữa. Chỉ cần sử dụng error.getKind() == Kind.NETWORK – pgarriga