我有一个锁管理器作为实现的代理类InvocationHandler
,
我希望这个锁管理器向DeadLockException
调用这个代理对象的对象抛出异常(例如),并且我希望调用者能够捕获这个异常,
这在 Java 中可能吗?如果这不是让它以某种方式工作的最佳方法是什么
我有一个锁管理器作为实现的代理类InvocationHandler
,
我希望这个锁管理器向DeadLockException
调用这个代理对象的对象抛出异常(例如),并且我希望调用者能够捕获这个异常,
这在 Java 中可能吗?如果这不是让它以某种方式工作的最佳方法是什么
如果您实现InvocationHandler,则覆盖以下方法:
@Override
Object invoke(
Object proxy,
Method method,
Object[] args ) throws Throwable {
throw new DeadLockException();
}
如您所见,此方法的签名表明可能会抛出 Throwable Exception。调用者中的一个简单的 try-catch 就足够了。
在死锁检测中需要什么逻辑?
死锁指的是资源分配,那么它们在哪里呢?
听起来您没有在代理实现的接口上的相关方法上声明 DeadLockException。你的调用者不知道它将被赋予的接口实现将是一个代理,它只是在接口中进行。