2022Java学习笔记七十三(异常处理:运行时异常、编译时异常、异常的默认处理的流程)

一、异常体系

1、Exception:java.lang包下,称为异常类,它表示程序本身可以处理的问题
2、RuntimeException及其子类:运行时异常,编译阶段不会报错。(空指针异常,数组索引越界异常)
3、除RuntimeException之外所有的异常:编译时异常,编译期必须处理的,否则程序不能通过编译(日期格式异常)


二、运行时异常
编译阶段不会报错,运行时可能出现的错误
一般是程序员业务没有考虑好或者是编译逻辑不严谨引起的程序错误

示例运行时异常

package com.itheima.d4_exception_runtimeException;
/**拓展: 常见的运行时异常。(面试题)运行时异常的概念:继承自RuntimeException的异常或者其子类,编译阶段是不会出错的,它是在运行时阶段可能出现的错误,运行时异常编译阶段可以处理也可以不处理,代码编译都能通过!!1.数组索引越界异常: ArrayIndexOutOfBoundsException。2.空指针异常 : NullPointerException。直接输出没有问题。但是调用空指针的变量的功能就会报错!!3.类型转换异常:ClassCastException。4.迭代器遍历没有此元素异常:NoSuchElementException。5.数学操作异常:ArithmeticException。6.数字转换异常: NumberFormatException。小结:运行时异常继承了RuntimeException ,编译阶段不报错,运行时才可能会出现错误!*/
public class ExceptionDemo {public static void main(String[] args) {System.out.println("程序开始。。。。。。");/** 1.数组索引越界异常: ArrayIndexOutOfBoundsException。*/int[] arr = {1, 2, 3};System.out.println(arr[2]);// System.out.println(arr[3]); // 运行出错,程序终止/** 2.空指针异常 : NullPointerException。直接输出没有问题。但是调用空指针的变量的功能就会报错!! */String name = null;System.out.println(name); // null// System.out.println(name.length()); // 运行出错,程序终止/** 3.类型转换异常:ClassCastException。 */Object o = 23;// String s = (String) o;  // 运行出错,程序终止/** 5.数学操作异常:ArithmeticException。 *///int c = 10 / 0;/** 6.数字转换异常: NumberFormatException。 *///String number = "23";String number = "23aabbc";Integer it = Integer.valueOf(number); // 运行出错,程序终止System.out.println(it + 1);System.out.println("程序结束。。。。。");}
}

三、编译时异常
不是RuntimeException或者其子类的异常,编译阶段九报错,必须处理,否则代码不通过

1、是担心程序员的技术不行,在编译阶段就报出一个错误,目的在于提醒不要出错
2、编译时异常是可遇而不可求

四、异常的默认处理的流程

2022Java学习笔记七十三(异常处理:运行时异常、编译时异常、异常的默认处理的流程)相关推荐

  1. 2022Java学习笔记八十八(网络编程:UDP通信,一发一收,多发多收消息接收实现)

    2022Java学习笔记七十八(网络编程:UDP通信,一发一收,多发多收消息接收实现) 一.快速入门 DatagramPacket:数据包对象 实例代码 定义发送端 package com.zcl.d ...

  2. Python学习笔记(十三):异常处理机制

    Python学习笔记(十三):异常处理机制 关于Python的异常处理机制 Python学习笔记(十三):异常处理机制 一.异常处理机制 常见异常类型 二.异常处理 try...except 异常类的 ...

  3. Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍

    开发第三方登录,我们必须首先要了解OAuth协议(本文所讲述的OAuth协议指的是OAuth2协议),本文首先简单介绍OAuth协议,然后基于Spring Social来阐述开发第三方登录需要做哪些准 ...

  4. ROS学习笔记七:使用rqt_console和roslaunch

    ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...

  5. 获取编译学习笔记 (十三)—— 外部中断

    疯狂暑期学习  汇编入门学习笔记 (十三)--  外中断 參考: <汇编语言> 王爽 第15章 1.外中断信息 外中断分为可屏蔽中断和不可屏蔽中断 可屏蔽中断 先看看内中断所引发的中断过程 ...

  6. window的dos命令学习笔记 七

    文章目录 一.dos历史学习笔记(后期整合到这里,我想能学到这里的应该不多了,嘿嘿,加油) 二.执行状态返回值(`%errorlevel%`,和shell中`$?`相似): 三.视窗 1.color ...

  7. ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记(七) 复位和时钟 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介绍 ...

  8. OpenCV学习笔记(七)——图像梯度及边缘检测

    图像梯度计算的是图像变化的速度.对于图像的边缘部分,其灰度值变化较大,梯度值也较大:相反,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小.一般情况下,图像梯度计算的是图像的边缘信息. ...

  9. Windows保护模式学习笔记(十三)—— PWTPCD

    Windows保护模式学习笔记(十三)-- PWT&PCD 要点回顾 CPU缓存 CPU缓存与TLB的区别 PWT(Page Write Through) PCD(Page Cache Dis ...

最新文章

  1. 如何让AI教机器自己玩俄罗斯方块?
  2. 第十四章 梁山好汉中谁最惹人爱
  3. 修改网络MAC地址的技巧
  4. ML之xgboost:解读用法之xgboost库的core.py文件中的get_score(importance_type=self.importance_type)方法
  5. 强碱性食品 高嘌呤食物
  6. MYSQL升级5.7.10后GROUP BY语句出错解决方法
  7. int*与(int*)的差别
  8. 修改Linux的基本配置(如主机名、ip等)
  9. Java 操纵XML之修改XML文件
  10. Kubernetes-服务连接和暴露(endpoints)(二十)
  11. 从开源开发者身上学到的 5 种品质
  12. Echarts数据可视化event图表事件的相关操作,开发全解+完美注释
  13. 网络编程_8(项目附件)
  14. Flash Builder 4 破解
  15. 在Windows上将桌面图标做成贪吃蛇游戏
  16. 2022年医院三基考试药师(中医临床)考试模拟试题卷及答案
  17. 清橙A1206 小Z的袜子(莫队算法)
  18. 【零基础系列】K-Means聚类算法
  19. android计算dpi代码_android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法...
  20. RAID0的安装步骤

热门文章

  1. UUID/GUID介绍、生成规则及生成代码
  2. YG-WGI系列堰闸结合测控一体化闸门
  3. mysql4g数据传输模块,4g dtu通信模块无线数据传输
  4. mybatis中动态sql常用的标签
  5. 解决IDEA maven项目不能创建package和class的问题
  6. IE 退出后,苹果 Safari 成为了开发者最讨厌的浏览器?
  7. 郑州美食大集合(不断更新)
  8. 【寻找巧妙性质-双指针】 AtCoder - arc098_b Xor Sum 2
  9. 八卦와 五行의 關係
  10. makefile中的all和.PHONY的作用