class ErrorTest { public static void main( String args[] ) { int m1, m2 ; try { m1 = Integer.valueOf(args[0]).intValue() ; m2 = Integer.valueOf(args[1]).intValue() ; a( m1, m2 ) ;//初期値が設定されずに呼ばれる可能性があるため、ここに移動 } catch( ArrayIndexOutOfBoundsException e ) { e.printStackTrace() ; } /* try{ //初期値が設定されていない場合がある a( m1, m2 ) ; }*/ catch( ArithmeticException e ) { e.printStackTrace() ; } } public static void a( int a1, int a2 ) { try { b( a1, a2 ) ; } catch( NullPointerException e ) { e.printStackTrace() ; } } public static void b( int b1, int b2 ) { int i = b1 ; int j = b2 ; try { //System.out.println( (float)i/j ) ; System.out.println( i/j ) ;//整数を0で除算したときのみ例外が適応される } catch( NullPointerException e ) { e.printStackTrace(); } } }