Java程序设计基础------异常处理

本来想着Java的异常处理没必要仔细看,大致看看就行,但是现在看来这是不行的,里面有很多要注意的知识点。

Java中的异常处理是通过try、catch、finally、throw、throws这五个关键字形成的,实际用起来不复杂,我觉得只要用几个典型的例子就可以知道异常处理怎么使用了。

典例一:使用try、catch、finally进行异常的捕获和处理

package ExceptionDemo;


public class Demo3 {
    public static void main(String[] args) {
        int [] s = {1,2,3,4,5};
        for (int j = 0; j < s.length; j++) {
            try{
                System.out.println(s[j]+"除以"+j+"的值为"+s[j]/j);
            }catch (ArrayIndexOutOfBoundsException e){
                System.out.println("数组越界异常!");
                e.printStackTrace();
            }catch (ArithmeticException e){
                System.out.println("处0异常!");
                e.printStackTrace();
            }catch (Exception e){
                System.out.println(e.getMessage());
            }finally {
                System.out.println("此时j的值为"+j);
            }
        }
        System.out.println("程序执行结束了!");
    }
}

 注意点:

1、catch捕获的异常时顺序执行的,执行catch后面的catch语句不执行

2、finally是可以省略的,若省略finally语句块,则在catch语句结束后,执行try后的语句执行。

3、当catch中含有system.exit(0)时,则不执行finally中的语句,程序终止;若catch中含有return语句,则先执行finally的语句然后再执行catch中语句。

抛出异常的方式有两种:一种是系统自动抛出的异常,一种是指定的方法抛出的异常。

典例二;使用throw抛出异常,并在相应的方法内处理

package ExceptionDemo;

public class Demo4 {
    public static void main(String[] args) {
        int a= 5;
        int b = 0;
        try{
            if (b == 0){
                System.out.println(a+"除以"+b+"的值为"+a/b);
            }else {
                throw new ArithmeticException();
            }
        }catch (ArithmeticException e){
            System.out.println("除数不能为0!");
        }
    }
}

结果是:

 

 上面是我们能处理的异常,但是对于程序中无法处理的异常,必须交由系统来处理异常,在main方法中利用throws抛出异常,让系统处理。用户也可以自定义异常类,但是自定义异常类不能由系统自动抛出,需要借助throw关键字来抛出这个异常类的对象。用户自定义的异常可以继承Exception类。具体的自定义异常类的方法如下:

package ExceptionDemo;

public class CheckException extends Exception {

    private int errorCode;
    private String errorMessage;

    public CheckException(){
    }


    public CheckException(String errorMessage,int errorCode) {
        super(errorMessage);
        this.errorCode = errorCode;
    }


    public void setErrorCode(int errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }
}

总结: 

1、当发生异常时,处理方式有两种:一种是交由Java的默认异常处理机制来处理,二是自行编写try-catch、

-finally语句处理

2、程序对异常处理的方式有三种:一是程序不能不能处理的错误;二是程序捕获的运行时异常,这类异常自己应该避免;三是必须捕获的非运行时异常。

 对于异常,我觉得学到这就行了。在实际得开发中怎么用我也不知道,等到那时具体开发得时候,遇到不会得异常知识在进行补起来吧!

最后有兴趣得可以一起交流啊!

猜你喜欢

转载自blog.csdn.net/yanzhiguo98/article/details/89642046