投げられる
日本語 | ぽいっ |
英語 | thrown |
ふりがな | なげられる |
フリガナ | ナゲラレル |
例外が発生すること、もしくは発生するかもしれないこと。
nullへのアクセス等により自動的に発生する場合と、throwを使用して明示的に「投げる」場合とがある。
投げられた例外は、投げられた箇所以降の処理を(finally内を除いて)スキップし、returnのようにメソッドから返る。それは投げられた例外がcatchで拾われるまで行われる。
投げられた例外がmain()メソッドの外まで到達するとプログラムが終了するため、通常はそれまでにcatchで拾うことで例外処理を行う。
nullへのアクセス等により自動的に発生する場合と、throwを使用して明示的に「投げる」場合とがある。
投げられた例外は、投げられた箇所以降の処理を(finally内を除いて)スキップし、returnのようにメソッドから返る。それは投げられた例外がcatchで拾われるまで行われる。
投げられた例外がmain()メソッドの外まで到達するとプログラムが終了するため、通常はそれまでにcatchで拾うことで例外処理を行う。
// Sample.java
public class Sample
{
public static void main( String[] args )
{
try
{
// nullが入っているのに操作しようとして、
//NullPointerExceptionが投げられる場合。
Object object = null;
object.toString();
}
catch( NullPointerException e )
{
e.printStackTrace();
// java.lang.NullPointerException
// at Sample.main(Sample.java:16)
// nullが入っているのに使おうとしたので
// NullPointerExceptionが投げられました。
}
// 例外が投げられると、投げられた箇所以降の処理は
// 行われません(finallyを除く)。
try
{
Sample sample = new Sample();
sample.nullPointerExceptionThrower1();
System.out.println( "main() : out" );
}
catch( NullPointerException e )
{
e.printStackTrace();
// nullPointerExceptionThrower1() : in
// nullPointerExceptionThrower2() : in
// nullPointerExceptionThrower3() : in
// java.lang.NullPointerException
// at Sample.nullPointerExceptionThrower3(Sample.java:75)
// at Sample.nullPointerExceptionThrower2(Sample.java:63)
// at Sample.nullPointerExceptionThrower1(Sample.java:53)
// at Sample.main(Sample.java:27)
// このように、 "nullPointerExceptionThrower*() : out"
// の処理は全て行われていません。catchで拾われて
// やっと止まります。
}
}
/**
* 通過確認用メソッド1
*/
private void nullPointerExceptionThrower1()
{
System.out.println( "nullPointerExceptionThrower1() : in" );
nullPointerExceptionThrower2();
System.out.println( "nullPointerExceptionThrower1() : out" );
}
/**
* 通過確認用メソッド2
*/
private void nullPointerExceptionThrower2()
{
System.out.println( "nullPointerExceptionThrower2() : in" );
nullPointerExceptionThrower3();
System.out.println( "nullPointerExceptionThrower2() : out" );
}
/**
* 通過確認用メソッド3
*/
private void nullPointerExceptionThrower3()
{
System.out.println( "nullPointerExceptionThrower3() : in" );
// ここでNullPointerExceptionを発生させます。
Object object = null;
object.toString();
// NullPointerExceptionが投げられることで、
// これ以降の処理は実行されません。
System.out.println( "nullPointerExceptionThrower3() : out" );
}
}
public class Sample
{
public static void main( String[] args )
{
try
{
// nullが入っているのに操作しようとして、
//NullPointerExceptionが投げられる場合。
Object object = null;
object.toString();
}
catch( NullPointerException e )
{
e.printStackTrace();
// java.lang.NullPointerException
// at Sample.main(Sample.java:16)
// nullが入っているのに使おうとしたので
// NullPointerExceptionが投げられました。
}
// 例外が投げられると、投げられた箇所以降の処理は
// 行われません(finallyを除く)。
try
{
Sample sample = new Sample();
sample.nullPointerExceptionThrower1();
System.out.println( "main() : out" );
}
catch( NullPointerException e )
{
e.printStackTrace();
// nullPointerExceptionThrower1() : in
// nullPointerExceptionThrower2() : in
// nullPointerExceptionThrower3() : in
// java.lang.NullPointerException
// at Sample.nullPointerExceptionThrower3(Sample.java:75)
// at Sample.nullPointerExceptionThrower2(Sample.java:63)
// at Sample.nullPointerExceptionThrower1(Sample.java:53)
// at Sample.main(Sample.java:27)
// このように、 "nullPointerExceptionThrower*() : out"
// の処理は全て行われていません。catchで拾われて
// やっと止まります。
}
}
/**
* 通過確認用メソッド1
*/
private void nullPointerExceptionThrower1()
{
System.out.println( "nullPointerExceptionThrower1() : in" );
nullPointerExceptionThrower2();
System.out.println( "nullPointerExceptionThrower1() : out" );
}
/**
* 通過確認用メソッド2
*/
private void nullPointerExceptionThrower2()
{
System.out.println( "nullPointerExceptionThrower2() : in" );
nullPointerExceptionThrower3();
System.out.println( "nullPointerExceptionThrower2() : out" );
}
/**
* 通過確認用メソッド3
*/
private void nullPointerExceptionThrower3()
{
System.out.println( "nullPointerExceptionThrower3() : in" );
// ここでNullPointerExceptionを発生させます。
Object object = null;
object.toString();
// NullPointerExceptionが投げられることで、
// これ以降の処理は実行されません。
System.out.println( "nullPointerExceptionThrower3() : out" );
}
}
// Sample.java public class Sample { public static void main( String[] args ) { try { // nullが入っているのに操作しようとして、 //NullPointerExceptionが投げられる場合。 Object object = null; object.toString(); } catch( NullPointerException e ) { e.printStackTrace(); // java.lang.NullPointerException // at Sample.main(Sample.java:16) // nullが入っているのに使おうとしたので // NullPointerExceptionが投げられました。 } // 例外が投げられると、投げられた箇所以降の処理は // 行われません(finallyを除く)。 try { Sample sample = new Sample(); sample.nullPointerExceptionThrower1(); System.out.println( "main() : out" ); } catch( NullPointerException e ) { e.printStackTrace(); // nullPointerExceptionThrower1() : in // nullPointerExceptionThrower2() : in // nullPointerExceptionThrower3() : in // java.lang.NullPointerException // at Sample.nullPointerExceptionThrower3(Sample.java:75) // at Sample.nullPointerExceptionThrower2(Sample.java:63) // at Sample.nullPointerExceptionThrower1(Sample.java:53) // at Sample.main(Sample.java:27) // このように、 "nullPointerExceptionThrower*() : out" // の処理は全て行われていません。catchで拾われて // やっと止まります。 } } /** * 通過確認用メソッド1 */ private void nullPointerExceptionThrower1() { System.out.println( "nullPointerExceptionThrower1() : in" ); nullPointerExceptionThrower2(); System.out.println( "nullPointerExceptionThrower1() : out" ); } /** * 通過確認用メソッド2 */ private void nullPointerExceptionThrower2() { System.out.println( "nullPointerExceptionThrower2() : in" ); nullPointerExceptionThrower3(); System.out.println( "nullPointerExceptionThrower2() : out" ); } /** * 通過確認用メソッド3 */ private void nullPointerExceptionThrower3() { System.out.println( "nullPointerExceptionThrower3() : in" ); // ここでNullPointerExceptionを発生させます。 Object object = null; object.toString(); // NullPointerExceptionが投げられることで、 // これ以降の処理は実行されません。 System.out.println( "nullPointerExceptionThrower3() : out" ); } }
「解説」に含まれているページ
- ArithmeticException
- ArrayIndexOutOfBoundsException
- ArrayStoreException
- assert
- AssertionError
- catch
- Caused by
- ClassCastException
- ClassNotFoundException
- CloneNotSupportedException
- DataInputStream
- DTD
- EOFException
- Error
- ExceptionInInitializerError
- FileNotFoundException
- finally
- IllegalArgumentException
- IndexOutOfBoundsException
- InterruptedException
- InvocationTargetException
- IOException
- JasperException
- NoClassDefFoundError
- NoSuchElementException
- null
- NumberFormatException
- OutOfMemoryError
- ResultSet
- SQLException
- StackOverflowError
- StringIndexOutOfBoundsException
- substring
- throw
- throws
- try
- アサーション
- キャッチ
- コンパイルタイムエラー
- バイト入力ストリーム
- バイト出力ストリーム
- バッファアンダーラン
- バッファオーバーフロー
- バッファオーバーラン
- ランタイムエラー
- 例外
- 例外処理
- 契約による設計
- 投げる
- 拾う
- 文字入力ストリーム
- 文字出力ストリーム
- 無限ループ
「サンプルプログラムとか」に含まれているページ
- ArrayStoreException
- assert
- Caused by
- Connection
- CREATE TABLE
- DELETE
- ExceptionInInitializerError
- execute
- INSERT
- java.sql.Date
- JDBC
- JDBCドライバ
- NOT NULL制約
- Object
- PreparedStatement
- ResultSet
- SELECT
- SQL
- SQLException
- SQLインジェクション
- Statement
- throws
- Timestamp
- UPDATE
- WHERE
- アサーション
- クエリー
- コネクション
- コミット
- テーブル
- データベース
- トランザクション
- プリペアードステートメント
- レコード
- ロールバック
- 主キー
- 例外
- 列
- 制約
- 投げられる
- 標準入出力
- 行