Bik*_*ash 1 java optimization exception class
我有一个带有用于处理 MemCache 请求的静态方法的类,它具有带有不同参数的不同方法。
每当在该类中调用某个方法时,我想增加 TotalRequest 计数器,如果类内的任何方法发生异常,我想增加失败计数器。有什么办法可以做到吗?
如果自然静态有一些问题,请告诉我?而且它应该是一个高效的。
我会使用AOP。如果您使用Guice或 Maven,那么在您的 beans 周围放置就很容易。您将声明一个拦截器,Guice 或 Maven 将包装您的方法。
还有AspectJ,不过我没用过。
最后,您可以将调用包装在调用者方法中。对于 Java 8 和 lambda,它会是这样的:
protected <T> T callWithTrace(Supplier<T> fn) throws Exception {
//some code before the call
try {
T output=fn.get();
//code after normal exec
return output;
}
catch(Exception e) {
//code in case of error (increase counter??)
throw e;
}
}
void someOtherMethod() {
Object ret = callWithTrace({ () -> callToYourDangerousMethod()});
Object ret = callWithTrace({ () -> callToAnotherDangerousMethod()});
}
Run Code Online (Sandbox Code Playgroud)
在 Java 7 中,您还可以使用匿名内部类来做到这一点,但它很难阅读。