我正在寻找抛出InterruptedException
的方法列表。到目前为止,我已经sleep()
& join()
的{{1}}和Thread
的{{1}}。
在Java的任何地方是否有任何其他人抛出wait()
或者这就是它?
注意:我没有询问有关Java中断的任何其他信息。只是想获得全面的清单。
// =====================================
编辑:将Q重新改写一下:
"在Java中抛出Object
的方法是调用InterruptedException
的{{1}},InterruptedException
和wait()
以及{ {1}}。这三种方法是"根" Java中断。"
这句话是真的吗?
答案 0 :(得分:4)
通过JavaDoc提供的综合列表:
http://docs.oracle.com/javase/7/docs/api/java/lang/class-use/InterruptedException.html
答案 1 :(得分:3)
关于InterruptedException
的 root 的第二个问题,以下类实际上生成一个(即throw new InterruptedException(...);
)。这是我的JDK(OpenJDK 1.8.0.11)。
为清楚起见,这些是在某个地方抛出新InterruptedException
的所有外部类(即非内部类),包括在内部类中。换句话说,如果类X
具有内部类X.Y
,而X.Y
具有抛出新InterruptedException
的方法,则它将在此列表中显示为{{ 1}}。 不包含生成一个原生的方法(这就是为什么X
不会出现在这里)。使用原生方法抛出java.lang.Object
的两个类只有InterruptedException
和java.lang.Object
。
java.lang.Thread
这里是我的JDK中可以抛出一个类的完整列表,包括在堆栈中较低级别生成的类。
java.util.concurrent.CyclicBarrier
java.util.concurrent.LinkedTransferQueue
java.util.concurrent.ForkJoinPool
java.util.concurrent.CompletableFuture
java.util.concurrent.locks.AbstractQueuedLongSynchronizer
java.util.concurrent.locks.AbstractQueuedSynchronizer
java.util.concurrent.locks.StampedLock
java.util.concurrent.SynchronousQueue
java.util.concurrent.Phaser
java.util.concurrent.FutureTask
java.util.concurrent.Exchanger
java.util.concurrent.ForkJoinTask
java.lang.InterruptedException
com.sun.corba.se.impl.orbutil.concurrent.DebugMutex
com.sun.corba.se.impl.orbutil.concurrent.Mutex
com.sun.corba.se.impl.orbutil.concurrent.CondVar
com.sun.corba.se.impl.orbutil.concurrent.ReentrantMutex
com.sun.jmx.snmp.daemon.SnmpAdaptorServer
com.sun.jmx.snmp.daemon.CommunicatorServer
答案 2 :(得分:2)
我不确定是否有完整的清单,但您目前的清单还远未完成。
java.util.concurrent.*
中的许多方法抛出异常。只需查看Future
which has a couple以及该软件包中的其他人。
然后是NIO功能调用,频道等。那里有很多(数千)。