public class HttpProxy{
public static <T> T getProxy(Class<T> c) {
return (T) Proxy.newProxyInstance(HttpProxy.class.getClassLoader(),
new Class<?>[] { c }, handler);
}
static class HttpInvocationHandler implements InvocationHandler {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object obj = null;
try {
throw new CustomException()
}catch (CustomException e) {
//it work here
throw e;
}
return obj;
}
}
}
调用方法:
try{
Res resp = HttpProxy.getProxy(IMODEL.class).login();
if (res != null){
return ok;
}
} catch (CustomException e) {
//代码混淆后,这里无法捕获自定义异常
Log.e(TAG, Log.getStackTraceString(e));
} catch(Exception e){
//代码混淆后,走到这里了
}
proguard文件里面设置了
-keep class com.** {*; }
-keep public class * extends java.lang.Exception{
public *;
}
仍然捕获不来
求高手指定,为什么代理混淆后,无法捕获到自定义异常
public static <T> T getProxy(Class<T> c) {
return (T) Proxy.newProxyInstance(HttpProxy.class.getClassLoader(),
new Class<?>[] { c }, handler);
}
static class HttpInvocationHandler implements InvocationHandler {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object obj = null;
try {
throw new CustomException()
}catch (CustomException e) {
//it work here
throw e;
}
return obj;
}
}
}
调用方法:
try{
Res resp = HttpProxy.getProxy(IMODEL.class).login();
if (res != null){
return ok;
}
} catch (CustomException e) {
//代码混淆后,这里无法捕获自定义异常
Log.e(TAG, Log.getStackTraceString(e));
} catch(Exception e){
//代码混淆后,走到这里了
}
proguard文件里面设置了
-keep class com.** {*; }
-keep public class * extends java.lang.Exception{
public *;
}
仍然捕获不来
求高手指定,为什么代理混淆后,无法捕获到自定义异常