import java.io.*;
public class testExceptionProc
{
int x=5,y,result;
int a[]={1,2};
public void process(int i){
if(i==1) System.out.println("输入1时无异常");
if(i==2) result=x/y;
if(i==3) a[9]=26;
}
public static void main(String[] args) 
{

try{
process(1);
process(2);
process(3);
}
catch(ArithmeticException e){
System.out.println("算术异常已做了处理");}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("数组下标越界异常已作处理");}
catch(Exception e){
System.out.println(e.toString());
return;}


}
}

解决方案 »

  1.   

    import java.io.*;
    public class TestExceptionProc
    {
        int x=5,y,result;
        int a[]={1,2};
        public void process(int i){
            if(i==1) System.out.println("输入1时无异常");
            if(i==2) result=x/y;
            if(i==3) a[9]=26;
        }
        public static void main(String[] args)
        {
            TestExceptionProc tep=new TestExceptionProc();
            try{
                tep.process(1);
                tep.process(2);
                tep.process(3);
            }
            catch(ArithmeticException e){
                System.out.println("算术异常已做了处理");}
            catch(ArrayIndexOutOfBoundsException e){
                System.out.println("数组下标越界异常已作处理");}
            catch(Exception e){
                System.out.println(e.toString());
                return;}
        }
    }
      

  2.   

    编译都通不过的,调用方法,你先得到一个对象啊,或者把方法写成static,直接用类名.方法名的形式调用
      

  3.   

    import java.io.*;
    public class testExceptionProc

    int x=5,y,result;
    int a[]={1,2};
    public static void process(int i){
    if(i==1) System.out.println("输入1时无异常");
    if(i==2) result=x/y;
    if(i==3) a[9]=26;
    }
    public static void main(String[] args)  
    { try{
    process(1);
    process(2);
    process(3);
    }
    catch(ArithmeticException e){
    System.out.println("算术异常已做了处理");}
    catch(ArrayIndexOutOfBoundsException e){
    System.out.println("数组下标越界异常已作处理");}
    catch(Exception e){
    System.out.println(e.toString());
    return;}
    }
    }
      

  4.   

    静态方法中没有实例成员,需要创建对象然后调用,或者将process()方法声明为静态的
      

  5.   

    我直接都把他们改成静态的了,那个变量类型也要申明为静态的,就可以了。。你们说的我都试过了,都谢谢啦。。
    import java.io.*;
    public class testExceptionProc
    {
    static int x=5,y,result;
    static int a[]={1,2};
    public static void process(int i){
    if(i==1) System.out.println("输入1时无异常");
        if(i==2) result=x/y;
        if(i==3) a[9]=26;
    }
    public static void main(String[] args) 
    {
    for(int i=1;i<=3;i++){
         try{
    process(i);

    }
    catch(ArithmeticException e){
    System.out.println("算术异常已做了处理");}
    catch(ArrayIndexOutOfBoundsException e){
    System.out.println("数组下标越界异常已作处理");}
    catch(Exception e){
    System.out.println(e.toString());
    return;}
    }
    }
    }
      

  6.   


    改成static也可以执行,但是这就没有用到任何面向对象的思想了,给你的代码不参考……既然问题解决了,就结贴给分吧