IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java异常 -> 正文阅读

[Java知识库]java异常

首先异常是什么呢?不好说,我的结论就是一种你可以去避免的问题,我们不能因为一些存在的异常,就让整个程序停止,这让不好,你的程序就太瘦弱了,健壮性不足,所以要学会异常,师夷长技以制夷。

异常体系图

异常分运行时异常,这个你可以try catch ,另一个是编译异常必须要改,相当于癌症晚期了属于是

常见的运行异常

NullPointerException
这个异常我印象尤为深刻,为什么呢?因为我当时判断是老是出现这个异常,后面就是初始化之后才弄好的,总之这个异常就是你使用到了空指针
ArithmeticException 数学运算异常
就是你的数学问题,比如除数不能是0,指数大于0这些吧,
ArrayIndexOutOfBoundsException 数组下标越界异常
ClassCastException 类型转换异常
这个涉及到多态,
?
        Animals cat = new Cat();
        Cat cat1 = (Cat)cat;
        Cat cat2 = (Dog)cat1;//这里就不行,你是猫这么还能变成狗讷?

?
NumberFormatException 数字格式不正确异常 []
经典案例就是字符串转数字(为什么"1234"可以,他不行捏"nanami"
编译异常,多是和文件Sql有关,我不会

处理异常

一种是try+catch+final,一定有try

还有一种是throw,甩锅组合,把他甩到上一级,看啊看会不会处理,知道jvm,直接输出错误信息终止程序,其实只要你不用try catch都会默认throw

我觉得值得说说的就是一旦发生异常,try里面的语句就会转到catch或者final(无catch的情况且不会执行下面的语句了捏),要是有catch的话就还会执行下面的语句,其实也没什么。

放几道练习题就好了

这里唯一的一点就是只能return 一个,就是catch里的return只能做return的操作,

实践的案例如下,你让用户输入,用户指不定给你输入些牛马,所以这时就可以try catch?

public class Text
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        int lbk = 0;
        while (true)
        {
            try {
                Scanner scanner1 = new Scanner(System.in);
                lbk = scanner1.nextInt();
                break;
            } catch (Exception e) {
                System.out.println("你的输入有误");
            }
        }
        System.out.println(lbk);
    }
}

这里说一点要注意的就是有多个异常的话,把子类的异常写前面,主要是逻辑问题,你要是第一个就写了父类的异常要是有的话,铁进入,后面再次重复也不好

我说说那个final其实无论如何都要执行,就是在程序快到异常,既无catch时会,会最后一个执行,普通的开摆就行

throws和throw

throw就是摆烂,看有无人员接手,一直摆烂,最后会摆到jvm上,jvm就会直接给你停了,叫你运行

细节一

throw和throws的区别

我觉得可以这么理解,方法只有一个throw,但类里却可以有许多方法所以用throws

细节二

自定义异常,就是extend继承运行异常,因为运行异常会有有默认的,但是你编译异常的一个个写,烦死了

细节三

当父类抛出异常时,子类重写的方法是不能超过父类异常的范围,就是说你子类的异常只能是父类的异常或其异常的子类。就像范问权限一样捏

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:20:29  更:2021-11-09 19:22:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:05:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码