JAVA中的异常机制(概念 和 运行时异常的逻辑分析)

JAVA中的异常机制(1)

  1. 什么是异常(exception),异常机制有什么用: 程序执行过程中发生了不正常的情况,而这种不正常的情况叫“异常”,
    java把该异常信息打印输出到控制台,供程序员参考,以便修改,让程序更”健壮“(不会因为某些错误的发生导致系统宕机)

  2. 异常在java中以类的形式存在,每一个异常类都可以创建异常对象,
    异常对应的现实生活是怎样的:
    火灾(异常类)
    2008-08-08,小明家着火了(异常对象)

  3. 异常(Exception)类 和 错误(Error)类 都是可抛出(Throwable)类 的,
    Error一旦发生不可处理,jvm直接终止运行,异常可以进行处理

  4. 所有异常都发生在运行阶段

  5. 异常分为 运行时异常(RuntimeException)编译时异常(ExceptionSubClass(异常的其他直接子类))
    运行时异常还可称为 非受检异常(UnCheckedException) 或 非受控异常
    编译时异常还可称为 受检异常(CheckedException) 或 受控异常

  6. 编译时异常表示必须在编写程序的时候对这种异常进行处理,不然编译器报错
    运行时异常在编写程序阶段可以选择预先处理也可以选择不处理

  7. java语言对异常的处理包括两种方式:
    一、在方法声明的位置上,使用throws关键字,抛给上一级
    二、使用try…catch语句进行异常的捕捉

  8. 异常发生后,如果选择了上抛,抛给了我的调用者,调用者需要对这个异常进行继续处理,
    那么调用者处理这个异常也同样有两种处理方式

  9. 注意:如果异常一直上抛,最终抛给了main方法,main方法继续上抛,抛给了调用者JVM,
    那就只有一个结果,终止java程序的执行

  10. (补充)子类不能比父类抛出更多的异常
    如果父类没有抛出异常,则子类只能try catch,不能throws

实例化异常对象:

public class ExceptionTest01 {
    public static void main(String[] args) {
        //通过“异常类”实例化“异常对象”
            ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException = new ArrayIndexOutOfBoundsException("数组越界异常正确触发了");
            System.out.println(arrayIndexOutOfBoundsException);
    }
}
//运行结果:
java.lang.ArrayIndexOutOfBoundsException: 数组越界异常正确触发了

运行时异常及逻辑分析:

public class ExceptionTest02 {

    public static void main(String[] args) {
        /*
        程序执行到此处发生了ArithmeticException异常,
        
        底层new了一个ArithmeticException异常对象
        然后抛出了,由于main方法调用了100 / 0,
        所以这个异常ArithmeticException抛给了main方法,
        
        main方法没有处理,将这个异常 自动抛给 了JVM,
        JVM最终终止程序的执行

        ArithmeticException 继承 runtimeException,属于运行时异常,
        在编写过程不需要对这种异常进行预处理
         */
        System.out.println(100 / 0);
        // “程序执行成功” 语句没有输出,没有执行
        System.out.println("程序执行成功");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值