day 17 异常机制

本文详细介绍了Java中的异常机制,包括常见异常类型(如空指针、下标越界等)、异常分类、处理措施(try-catch、throws和finally)、Error和Exception的区别,以及新特性的自动关闭资源。还涉及了设计中的需求,如异常类的设计原则和包结构划分。
摘要由CSDN通过智能技术生成

1异常机制

1.1 常见异常

        1 空指针异常

        2 下标越界异常

        3 类型转换异常

        4栈内存溢出

1.2 概述

        异常发生原因

        用户输入非法数据

        文件底子不存在

        网络通信中断

        jvm内存溢出

        大部分异常是用户引起的 有一部分是程序错误引起的 小部分是物理因素

1.3 异常分类

        Throwable是所有异常跟错误的父类

        分为 Error  Excepotion 两个类

        Exception 分为运行异常 跟io异常(又称为编译时异常)

        运行异常是比较多的

        

1.4处理措施

        try catch 处理异常 一般用于客户端

        throws 抛出异常一般用于服务器

        throw 异常源点

        finally 必须执行的语句

1.5 Error

        系统内部错误 这类错误由系统处理 我们不需要管

1.6 Exception

 1.6.1 概述

        Exception是所有异常的父类        

        分类如上

1.6.2 两个方法

这个方法一般用来让程序员排错

        

这个方法一般用来反馈给客户端

1.6.3  try catch

        try{
         高风险代码
 *         1
 *         2 如果这里出错的话 try结束 直接指向catch
 *         3
 * }
 * catch(异常类型 变量){
 *         出现异常时处理措施
 * }

可以通过多个catch 做不同的异常处理
 * 但是从上往下必须是从子类到父类 或者没有继承关系
 * 因为如果上面是父类的话 会执行父类 不会执行子类

        

同时捕捉多个异常 并且多个异常类型直接使用 |  隔开 并且这些异常不可以有继承关系、

如果存在继承关系直接写父类异常

1.6.4 Throws

        抛出异常 是一种提醒机制 并不会解决问题 该报错还是会报错 该终止生命周期还是会终止
 * 当我们调用的方法抛出了异常 那么要么我们也抛出 要么我们try掉
 * 如果知道这个问题怎么解决 就是try掉 如果不知道 就throws抛出去
 * 服务端 使用throws 在客户端 使用trycatch
 * 服务端 被调用 客户端 调用处

        

1.6.5 Finally

        finally 必须执行的语句块 不能单独使用
 * 必须和try 或者 try catch一起使用
 * finally 只有一种不执行的情况 那就是JVM虚拟机终止System.exit(0);

        

 1.6.6  1.7新特性

        自动关闭资源

        try(开启资源语句;){

        高风险代码

}catch(异常类型 变量){

}

        

 1.6.7 注意

        方法覆写 不能比原方法有更宽泛的异常

        子类方法抛出的异常 不能大于父类的异常

               

1.7 自定义异常类

        创建一个异常类 继承已有异常

        提供无参构造 带参构造

        如果自定义异常类是运行时异常 继承RuntimeException即可

        否则一般直接继承Exception

2 需求(跟设计有关)

2.1 设计图

        

        分析

                controller包里面的类 是实现前后端交互的 调用一些方法

                service包里面的类 是逻辑处理

                dao 是实现后端跟数据库的交互 只实现功能没有逻辑处理

                util包里面的类是自己写的自定义异常 很常用 是一种提醒机制

                pojo就是普通的java类

                

        

                

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值