阶段二.五.异常处理

阶段二.五.异常处理

5.1

一.认识异常

定义:异常就是代表程序出现的问题

二.异常的体系

**Error:**代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题,sun公司会把这些问题封装成Error对象给出来说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。

**Exception:**叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。

  • **运行时异常:**RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界异常)

  • **编译时异常:**编译阶段就会出现错误提醒的。(如:日期解析异常)

在这里插入图片描述

三.异常的处理方式

1.抛出异常(throws)

  • 在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理。

2.捕获异常(try…catch)

  • 直接捕获程序出现的异常。

在这里插入图片描述

总结

1.异常是什么?
异常就是程序出现的问题
2.异常的代表是谁?分为几类?

3.异常代码层面的处理有几种方式?
共有两种方式。一种是直接抛出异常,通过throws方式,将异常跑出去给调用者处理。第二种就是通过trycatch的方式捕获异常,在本阶段就将异常进行处理

5.2

一.自定义异常

定义:Java无法为这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示以便用异常来管理该问题,那就需要自己来定义异常类了。

1.自定义运行时异常

  • 定义一个异常类继承RuntimeException.
  • 重写构造器。
  • 通过throw new 异常类(xxx)来创建异常对象并抛出。
    编译阶段不报错,提醒不强烈,运行时才可能出现!!

2.自定义编译时异常

  • 定义一个异常类继承Exception.
  • 重写构造器。
  • 通过throw new 异常类(xxx)来创建异常对象并抛出,编译阶段就报错,提醒更加强烈!

**补充:**编译时异常 是比 运行时异常更复杂一些。套用运行时异常代码样例创建捕获抛出, 编译时异常会报错(一写出来就会报错。解决办法:在方法中就要throws 抛出异常。 而运行时异常不需要这个步骤。且写代码时就需要trycatch捕获)。 对于程序员来说:从实际开发角度来说,两者都是可以随意使用的。 如果想强烈提醒,直接使用自定义编译时异常即可。

2.1.运行时异常代码样例

在这里插入图片描述

2.2.编译时异常代码样例

在这里插入图片描述

在这里插入图片描述

3.自定义异常总结

异常有什么作用?
:1.异常时用来查询系统Bug的关键参考信息!
:2.异常可以作为方法内部的一种特殊返回值,以便通知上层调用者底层的执行情况。

什么是自定义异常?
Java程序中,由程序本身制造的问题,在javaapi中无法提供对应的异常处理。为了满足公司自我需求,从而通过自定义异常的方式,通过异常类来管理问题。所以需要自定义异常类

自定义异常有哪几类?分别怎么定义?
两类。运行时异常类和编译时异常类。  编译时异常类更为复杂一些。且编译时异常需要在方法中手动抛出。

异常的作用有哪些?

5.3

一.异常的处理

1.1开发中对于异常的常用处理方式

在这里插入图片描述

1.2异常处理方式案例

在这里插入图片描述

1.3异常处理通用案例

在这里插入图片描述

1.4异常处理之修复异常

在这里插入图片描述

总结

异常的处理有几种方案?
两种。一种直接记录异常并响应合适信息给用户,一种时尝试修复异常
  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值