浅谈Java的异常机制

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

异常机制

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

1.抛出异常

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

2.捕获异常

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

这是异常的分类
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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值