Java异常01

异常 Exception

为什么需要学习异常**

  • 在开发中,程序员会开发过程中,会遇到异常bug,JVM会终止程序,带来用户体验不好。在实际项目开发中,在整个项目过程中,遇到报错,整个服务器会中断,带来的问题一方面是不利于项目的完整性,带来用户体验不好
  • 学习异常,才能够帮助开发者能够更好的解决程序中遇到的问题,不仅如此,哪怕就算是程序出错了,也 希望能够程序正常运行下去,并且能够告诉我们程序哪里出错了,把错误信息告诉开发者

生活中异常:
小明来学校上课,赶到学校上课,不会迟到
在来上课的路上,遇到一些问题
下雨了,带伞
遇到小小的事故,其他的阻塞交通事故
忘记带电脑
地震等等。

程序中异常:

  • Java是面向对象语言,对异常也提供一系列的异常对象
  • 常见的异常:除数不能为零,数组下标越界异常,类型转换异常,空指针

异常体系结构图/异常分类
在这里插入图片描述

Throwable 异常的最大父类
Error 严重错误:如内存溢出等,程序员无法解决的,不做处理
Exception:程序员能够处理的
Exception 如果是Exception下面的子类,都是属于 编译时异常,编写程序的时候,就直接报错了
RuntimeException 如果是RuntimeException下面的子类,都是属于 运行时异常,在运行程序的时候,遇到的错误,就叫运行时异常

处理异常有两种方法:
1.try-catch 手动处理异常
2.throws 抛给别人去处理

使用异常机制:try-catch解决异常问题

  • 语法格式
    try{
    有可能会出现异常的代码块
    }catch(异常类名 名称){
    出错了,匹配异常对象
    异常处理的信息
    }

  • 执行流程:
    1、System.out.println(String.format("%d / %d = %d",num1,num2,num1/num2));
    2、ArithmeticException ae = new ArithmeticException();
    3、Exception e = ae; 多态
    4、进到catch进行匹配异常,
    分为两种情况:
    匹配成功:异常处理成功了,后面的程序得到正常运行不会受影响
    匹配不成功:匹配失败,就相当于没有得到正确的异常处理,后面的程序不会得到正常运行会受影响
    1.try块里面的代码出错了,进到catch进行匹配
    1.1如果匹配成功,异常得到正常的处理
    1.2如果匹配失败,异常没有正常的处理
    2.try块里面的代码没有出错,继续执行try块后面的代码

使用异常机制:try-catch-finally解决异常问题

  • 语法:

  • try{
    放可能会出现异常的代码
    } catch (Exception e) {
    e.printStackTrace();
    异常匹配处理
    } finally {
    最终一定会执行的代码块
    一般finally块就做关闭资源的操作:
    关闭数据库资源
    关闭IO流资源
    }

    • finally关键字:不管try块有没有发生异常,最终一定都会执行的代码块, 唯一不执行finally块的情况,使用系统退出的方法
      return关键字在异常处理的时候,在try块或者是catch遇到return,不会影响finally的执行,返回值或者是退出方法
      * 执行流程
      加入return关键字
      首先在try块如果发生异常
      进到catch进行捕获异常
      匹配成功,打印异常信息
      遇到return
      再执行finally块
      执行finally块,之后再return退出整个方法
  • 面试题:
    final 和 finally 和 finalize 的区别:
    final 代表最终的,不能被修改的,修饰属性和方法和类
    finally 代表try-catch-finally异常里面最终一定会执行的代码块,一般用于关闭资源
    finalize 是系统使用的方法,代表是访问了内存中不存在的空对象,系统会调用垃圾回收的方法,是Object的方法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值