浅谈Java的异常机制

异常,英文是Expection,意思是例外。
异常的作用主要是为了代替if来处理各种情况。

异常机制

本质是当程序遇到错误,让程序可以安全退出的机制。

1.抛出异常

当执行一个方法时,如果发生异常,就把这个方法生成代表该异常的一个对象,停止执行当前路径,将对象交给JRE。

2.捕获异常

JRE得到异常后,处理异常。

浅谈Java的异常机制_第1张图片
Throwable是所有的异常
Error代表没法处理的异常,不需要管。
Expection是需要处理的
(这些都是类)

异常有哪几种

Runtime Exception:运行时处理

NullPointException 空指针
ClassCastException 强制转换发生错误
ArithmeticException 试图除以0
ArrayIndexOutOfBoundsException 数组越界

Checked Exception:编译时就处理

处理异常的方式

捕获异常

try{
   语句1:
   语句2//可能有异常的地方
}
catch(Expection1 e){子类在前
}catch(Expection2 e){
}finally{
//有没有异常都执行它
}

抛出异常

不想处理,直接抛出
在方法后写throw Expection
调用该方法的方法也要处理异常

自定义异常

继承Exception类或RuintimeException类
这是自定义异常的例子:

public class write {
    public static void main(String[] args) {
        Person p = new Person();
        p.setAge(-10);
    }
}
class Person
{
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age<0)
            throw new newException("年龄应该大于0");
        this.age = age;
    }
}
class newException extends RuntimeException{
    public newException()
    {}
    public newException(String msg)
    {
        super(msg);
    }
}

结果如下:
Exception in thread “main” newException: 年龄应该大于0
at Person.setAge(write.java:17)
at write.main(write.java:4)

你可能感兴趣的:(javaSE)