Java基础~Java 异常处理

一、介绍

  • 异常是程序在“编译”或者“执行”的过程中可能出现的问题,注意**:**语法错误不算在异常体系中。

  • 比如:数组索引越界、空指针异常、 日期格式化异常,等…

二、异常体系

在这里插入图片描述

  • Error:系统级别问题、JVM退出等,代码无法控制。

  • Exception:java.lang包下,称为异常类,它表示程序本身可以处理的问题

  • RuntimeException及其子类:运行时异常,编译阶段不会报错。 (空指针异常,数组索引越界异常)

  • 除RuntimeException之外所有的异常:编译时异常,编译期必须处理的,否则程序不能通过编译。 (日期格式化异常)。

三、编译时异常和运行时异常

  • 编译时异常就是在编译的时候出现的异常
  • 运行时异常就是在运行时出现的异常
    在这里插入图片描述

四、编译时异常处理方式

一、出现异常直接抛出去给调用者,调用者也继续抛出去

  • throws:用在方法上,可以将方法内部出现的异常抛出去给本方法的调用者处理
  • 这种方式并不好,发生异常的方法自己不处理异常,如果异常最终抛出去给虚拟机将引起程序死亡
// 抛出异常格式
方法 throws 异常1,异常2,异常3{}
// 规范做法:代表可以抛出一切异常
方法 throws Exception{}

二、出现异常自己捕获处理,不麻烦别人

  • 监视捕获异常,用在方法内部,可以将方法内部出现的异常直接捕获处理
  • 这种方法还可以,发生异常的方法自己独立完成异常的处理,程序可以继续往下执行
try{
    // 监视可能出现异常的代码
}catch(异常类型1 变量){
    // 处理异常
}catch(异常类型2 变量){
    // 处理异常
}
try{
    // 可能出现异常的代码
}catch(Exception e){
    e.printStackTrace();// 直接打印异常栈信息
}
Exception可以捕获处理一切异常类型

三、前两者结合,出现异常直接抛出去给调用者,调用者捕获处理

  • 方法直接将异常通过throws抛出去给调用者
  • 调用者收到异常后直接捕获处理

五、自定义异常

一、自定义编译时异常

  • 定义一个异常类继承Exception.
  • 重写构造器。
  • 在出现异常的地方用throw new 自定义对象抛出,
  • 作用:编译时异常是编译阶段就报错,提醒更加强烈,一定需要处理!!

二、自定义运行时异常

  • 定义一个异常类继承RuntimeException.
  • 重写构造器。
  • 在出现异常的地方用throw new 自定义对象抛出!
  • 作用:提醒不强烈,编译阶段不报错!!运行时才可能出现!!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值