package com.kdp.wanandroidclient.net; import android.content.Context; import com.kdp.wanandroidclient.R; import com.kdp.wanandroidclient.utils.NetworkUtils; import com.kdp.wanandroidclient.utils.ToastUtils; import org.json.JSONException; import java.net.ConnectException; import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.text.ParseException; /*** * @author kdp * @date 2018/11/30 9:38 * @description 异常处理类 */ public class NetExceptionHandle { /** * 处理异常错误 * @param context * @param t */ public static void dealException(Context context, Throwable t) { if (!NetworkUtils.isAvailable(context)){ onException(NetConfig.CONNECT_ERROR, context); return; } if (t instanceof ConnectException) { //连接错误,网络异常 onException(NetConfig.CONNECT_ERROR, context); }else if (t instanceof UnknownHostException){ //无法连接到主机 onException(NetConfig.UNKNOWN_HOST,context); } else if (t instanceof InterruptedException) { //连接超时 onException(NetConfig.CONNECT_TIMEOUT, context); } else if (t instanceof JSONException || t instanceof ParseException) { //解析错误 onException(NetConfig.PARSE_ERROR, context); } else if (t instanceof SocketTimeoutException) { //请求超时 onException(NetConfig.REQUEST_TIMEOUT, context); } else if (t instanceof UnknownError) { //未知错误 onException(NetConfig.UNKNOWN_ERROR, context); } else if (t instanceof IllegalArgumentException){ //未知错误 onException(NetConfig.ILLEGAL_PARAMS, context); } } /** * 异常信息提示 * @param errorCode * @param context */ private static void onException(int errorCode, Context context) { switch (errorCode) { case NetConfig.CONNECT_ERROR: ToastUtils.showToast(context, R.string.connect_error); break; case NetConfig.UNKNOWN_HOST: ToastUtils.showToast(context,R.string.unknown_host); break; case NetConfig.CONNECT_TIMEOUT: ToastUtils.showToast(context, R.string.connect_timeout); break; case NetConfig.PARSE_ERROR: ToastUtils.showToast(context, R.string.parse_error); break; case NetConfig.REQUEST_TIMEOUT: ToastUtils.showToast(context, R.string.request_timeout); break; case NetConfig.UNKNOWN_ERROR: ToastUtils.showToast(context, R.string.unknown_error); break; case NetConfig.ILLEGAL_PARAMS: ToastUtils.showToast(context,R.string.illegal_params); break; } } }