异常

14.异常

java强壮性:异常处理机制

1面试题

常见的一场有哪些(5个)

  1. ​ 空指针异常nulllpointerxception,
  2. ​ 算数异常ArithmeticException,
  3. ​ 数组越界异常,
  4. ​ 类型转换异常NumberFormatException
  5. ​ IO

影响程序正常运行的事件分为 错误(Error)和异常(Exception)

错误:堆内存溢出(OutOfMeoryError)栈内存溢出(stackoverflow)方法区内存溢出 堆内存泄漏

​ 当出现错误时妖媚改源码要么改机器配置

2异常体系

  • Throwable类是Error类和Exception类的父类

  • Exception是所有异常类的父类;把程序中的异常通常分为两大类:

    ​ 运行时异常 (RuntimeExcepion)/非运行时异常(编译异常)

  • 运行时异常通常指的是运行期间发生的异常,都是RuntimeException的子类;编译肯定通过

  • 非运行时异常,一定要处理 编译才能通过

3异常的处理

  • 捕捉异常,抓到后处理;程序就能往下继续执行
  • try…catch…finally

3.1try语句块

  • try块中放的是有可能发生异常的代码
  • 一旦有异常出现之后就会跳出try语句块

3.2catch语句块

  • catch代码块是当try中有异常出现时才有可能执行的
  • catch是捕捉,用来抓异常对象的,catch里小括号里面的类类型一定要和异常对象类型匹配(或者父子关系)才能抓到
  • catch代码块是抓到异常之后进行处理,通常是记录到log(日志)中方便后续追踪;
  • catch语句块可以有很多个;小类型写在上边,大类型写在下面
public static void	div(int a ,String b){
    int c=0;
    try{
        c= a /Integer.parseInt(b);
        System.out.println("18line +++++++++");
    }catch(ArithmeticException e){
        System.out,println(e);
        System.out.println(e.getMessage());
        //处理
        System.out.println("捕捉到异常了")}catch (NumberFormatException e) {
            System.out.println("捕捉到的是数值转换异常");
    } catch (Exception e) {
        //其他异常
            System.out.println("");
        }
        System.out.println(c);
    }
}

3.3finally

  • 不是必须的

  • 里面的代码是一定会执行的代码块

  • 异常出现或者不出现都会执行

  • try或者catch中出现return也会执行

  • 文件资源(资源的关闭)时都会在finally语句块中执行

    4抛异常

    throws throw 关键字

    throw用在放法体中后面跟的是异常对象,表示要抛出的异常对象

    public static void addBike(ShareBike shareBike) throws Exception {
            if (shareBike == null) {
    //            return;
                //抛   异常对象
                throw new RuntimeException("共享单车传参是null");
            }
            System.out.println("id " + shareBike.getId());
            System.out.println("name " + shareBike.getName());
            System.out.println("======");
        }
    

    5自定义异常

    自定义一个异常类型,只需要写两个构造方法即可

    public class CustomException extends RuntimeException {
    
        public CustomException() {
        }
    
        public CustomException(String message) {
            super(message);
        }
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值