在Java中有没有一种方法可以通过使用插装来拦截对象的创建?
我需要截获所有ClassNotFoundException或NoClassDefError的创建:问题是这些异常中的一些被一些库捕获,并在其他异常类型中重新引用,因此我无法检索类名。 在Java中有没有一种方法可以通过使用Intstrumentation来实现这一点
你可以在下面搜索框中键入要查询的问题!
我需要截获所有ClassNotFoundException或NoClassDefError的创建:问题是这些异常中的一些被一些库捕获,并在其他异常类型中重新引用,因此我无法检索类名。 在Java中有没有一种方法可以通过使用Intstrumentation来实现这一点
# 1 楼答案
您可以编写自己的^{} 实现,并在^{} 或其他可用方法中应用您的逻辑}的常见来源。除非第三方库更改默认的类加载过程(例如OSGI),否则它们仍然会调用
ClassLoader
是应用程序中{ClassLoader
# 2 楼答案
下面的示例向
ClassNotFoundException
的构造函数添加插装,并在调用它时执行System.err.println
我不确定如何从我认为您需要的检测调用回调
这需要编译成带有META-INF/MANIFEST的JAR文件。像这样吗
并使用程序参数
-javaagent:/home/adam/agent-example.jar
调用这可以用一个包含异常的测试类来演示
输出