//MultiNest.java
class MultiNest{
static void procedure(){
try{
int c[] = { 1 };
c[42] = 99;
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("array index oob: " + e);
}
}
public static void main(String args[]){
try{
int a = args.length;
System.out.println("a = " + a);
int b = 42/a;
procedure();
}catch(ArithmeticException e){
System.out.println("div by 0: " + e);
}
}
}
//ThrowDemo.java
class ThrowDemo{
static void demoproc(){
try{
throw new NullPointerException("de3mo");
}catch(NullPointerException e){
System.out.println("caught inside demoproc");
throw e;
}
}
public static void main(String args[]){
try{
demoproc();
//ThrowDemo1.java
class ThrowsDemo1{
static void procedure() throws IllegalAccessException{
System.out.println("inside procedure");
throw new IllegalAccessException("demo");
}
public static void main(String args[]){
try{
procedure( );
}catch(IllegalAccessException e){
System.out.println("Caught" + e);
}
}
}
}catch(NullPointerException e){
System.out.println("recaught: " + e);
}
}
}
//FinallyDemo.java
class FinallyDemo{
static void procA(){
try{
System.out.println("inside procA");
throw new RuntimeException("demo");
}finally{
System.out.println("procA's finally");
}
}
static void procB(){
try{
System.out.println("inside procB");
return;
}finally{
System.out.println("procB's finally");
}
}
public static void main(String args[]){
try{
procA();
}catch(Exception e){
procB();
}
}
}