03. キーボードから読み込む(例外を発生) inOut.java
- 2006.08.13
- Java
続き。
例外を発生させる
「こんにちは。」を入力しリターンすると、「こんにちは。」が出力される。
次に、control + D を入力する。
$ java inOut こんにちは。 こんにちは。 例外が発生しました。
例外を表示する
System.our.printl( e ); を追加して例外を表示させるようにする。
// // inOut.java // public class inOut { public static void main( String[] args ){ byte[] buff = new byte[ 1024 ]; // 配列の定義をする int n = 1; while( n > 0 ) { try { n = System.in.read( buff ) ; // キーボード読み込み System.out.write( buff, 0, n ); // 表示する if( buff[0] == (byte)'q' ) { break; } } catch( Exception e ) { System.out.println( "例外が発生しました。"); System.out.println( e ) ; // この行を追加 System.exit( 1 ); // プログラムを終了する } } } }
実行
$ java inOut こんにちは。 こんにちは。 例外が発生しました。 java.lang.ArrayIndexOutOfBoundsException
「こんにちは。」を入力後、control + D を入力した。
例外の原因が、「 java.lang.ArrayIndexOutOfBoundsException」と表示される。
例外を発生した場所を表示させる
e.printStackTrace(); を追加する。
// // inOut.java // public class inOut { public static void main( String[] args ){ byte[] buff = new byte[ 1024 ]; // 配列の定義をする int n = 1; while( n > 0 ) { try { n = System.in.read( buff ) ; // キーボード読み込み System.out.write( buff, 0, n ); // 表示する if( buff[0] == (byte)'q' ) { break; } } catch( Exception e ) { System.out.println( "例外が発生しました。"); System.out.println( e ) ; // この行を追加 e.printStackTrace(); // この行も追加 System.exit( 1 ); // プログラムを終了する } } } }
実行
$ java inOut こんにちは。 こんにちは。 例外が発生しました。 java.lang.ArrayIndexOutOfBoundsException java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:111) at java.io.PrintStream.write(PrintStream.java:412) at inOut.main(inOut.java:13) ← エラーの発生した場所は13行目
エラーが発せした場所が13行目だとわかる。
-
前の記事
03. 引数を受け取る CmdLine.java 2006.08.13
-
次の記事
00. ターミナルの設定 2006.08.13