InterruptedException
日本語 | 割り込み例外 |
英語 | interrupted exception |
ふりがな | いんたらぷてっどえくせぷしょん |
フリガナ | インタラプテッドエクセプション |
割り込みが発生した場合に投げられる例外。
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.InterruptedException。
例外の一種。Threadクラスのsleep()メソッド等、一時的にスレッドを停止するメソッドが投げる。停止中に、Threadクラスのinterrupt()メソッド等で割り込みが生じた場合に投げられる。
Exceptionクラスのサブクラスのため、単に一時停止させたい場合にも必ずcatchしなければならないため少し面倒。
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.InterruptedException。
例外の一種。Threadクラスのsleep()メソッド等、一時的にスレッドを停止するメソッドが投げる。停止中に、Threadクラスのinterrupt()メソッド等で割り込みが生じた場合に投げられる。
Exceptionクラスのサブクラスのため、単に一時停止させたい場合にも必ずcatchしなければならないため少し面倒。
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// スレッドを作ります。
OtherThread thread = new OtherThread();
thread.start();
// 眠っているスレッドに割り込みを掛けます。
thread.interrupt();
}
}
/**
* 別スレッドとして実行するためのクラス。
*/
class OtherThread extends Thread
{
/**
* Threadクラスのrun()メソッドを
* オーバーライドしたメソッド。このメソッドが
* 別スレッドとして呼び出されます。
*/
public void run()
{
try
{
// 5秒待ちます。
sleep( 5 * 1000 );
System.out.println( "ここは通らないでしょう。" );
}
catch( InterruptedException e )
{
// Threadクラスのinterrupt()メソッドで
// 割り込みが入るため、InterruptedException例外が
// 投げられます。
e.printStackTrace();
// java.lang.InterruptedException: sleep interrupted
// at java.lang.Thread.sleep(Native Method)
// at OtherThread.run(Sample.java:29)
}
}
}
public class Sample
{
public static void main( String[] args )
{
// スレッドを作ります。
OtherThread thread = new OtherThread();
thread.start();
// 眠っているスレッドに割り込みを掛けます。
thread.interrupt();
}
}
/**
* 別スレッドとして実行するためのクラス。
*/
class OtherThread extends Thread
{
/**
* Threadクラスのrun()メソッドを
* オーバーライドしたメソッド。このメソッドが
* 別スレッドとして呼び出されます。
*/
public void run()
{
try
{
// 5秒待ちます。
sleep( 5 * 1000 );
System.out.println( "ここは通らないでしょう。" );
}
catch( InterruptedException e )
{
// Threadクラスのinterrupt()メソッドで
// 割り込みが入るため、InterruptedException例外が
// 投げられます。
e.printStackTrace();
// java.lang.InterruptedException: sleep interrupted
// at java.lang.Thread.sleep(Native Method)
// at OtherThread.run(Sample.java:29)
}
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // スレッドを作ります。 OtherThread thread = new OtherThread(); thread.start(); // 眠っているスレッドに割り込みを掛けます。 thread.interrupt(); } } /** * 別スレッドとして実行するためのクラス。 */ class OtherThread extends Thread { /** * Threadクラスのrun()メソッドを * オーバーライドしたメソッド。このメソッドが * 別スレッドとして呼び出されます。 */ public void run() { try { // 5秒待ちます。 sleep( 5 * 1000 ); System.out.println( "ここは通らないでしょう。" ); } catch( InterruptedException e ) { // Threadクラスのinterrupt()メソッドで // 割り込みが入るため、InterruptedException例外が // 投げられます。 e.printStackTrace(); // java.lang.InterruptedException: sleep interrupted // at java.lang.Thread.sleep(Native Method) // at OtherThread.run(Sample.java:29) } } }