异常机制( 就是当程序出现错误,程序安全退出的机制):

  1. 异常:

  1. RuntimeException 运行时异常

    1. CheckedException
      已检查异常:如IOException、SQLException等以及用户自定义的Exception异常
  2. 捕捉异常(在当前方法中进行捕捉,然后处理该异常):try catch(先小后大) finally

try(用来存放的是可能发生异常的Java语句):一个try语句必须带有至少一个catch语句块和一个finally语句块

catch(用来激发被捕获的异常):常用方法,这些方法均继承自Throwable类。

Exception e(Exception是try代码块传递给catch代码块的变量类型,e是变量名)

     e.toString ()方法,显示异常的类名和产生异常的原因e.getMessage()方法,只显示产生异常的原因,但不显示类名。e.printStackTrace()方法,用来跟踪异常事件发生时堆栈的内容。

如果异常类之间有继承关系,在顺序安排上需注意。越是顶层的类,越放在下面,也就是先捕获子类异常再捕获父类异常。再不然就直接把多余的catch省略掉。

finally:1.通常在finally中关闭程序块已打开的资源,比如:关闭文件流、释放数据库连接等(注意顺序:先打开的最后关闭)。

2.即使try和catch块中存在return语句,finally语句也会执行。是在执行完finally语句后再通过return退出。

3.

finally语句块只有一种情况是不会执行的,那就是在执行finally之前遇到了System.exit(0)结束程序运行。(finally语句块中发生了异常、程序所在的线程死亡、关闭CPU)

  1. 声明抛出异常(当前方法并不需要处理发生的异常,而是向上传递(抛出)给调用它的方法(方法调用者)处理, 如果一个方法中可能产生某种异常,但是并不能确定如何处理这种异常,则应根据异常规范在方法的首部声明该方法可能抛出的异常。):throws

  2. 重写时注意子类异常范围小于父类

  3. 向上抛出后,方法调用者不想处理,还可继续向上抛出

  4. Error,RuntimeException或它们的子类,可以不throws,最终被系统抛出

  5. 手动抛出异常:throw:通常用于方法体中,程序执行到throw立即终止

一般在方法中手动抛出异常,该方法要throws给上一级(一般是main),main函数中调用该方法时要try-catch捕捉。

  1. 自定义异常

数中调用该方法时要try-catch捕捉。

  1. 自定义异常

    1. extends Exception或者他的子类

四、异常(高琪java300集+java从入门到精通笔记)相关推荐

  1. 【160天】尚学堂高琪Java300集视频精华笔记(129)

    明天开始,专栏增加一个黑马程序员的课程更新. 其它容器收尾讲解 队列Queue与Deque(单向队列与双向队列) Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到) Has ...

  2. java高淇_高淇java300集JAVA常用类作业

    一.选择题 1. 以下选项中关于int和Integer的说法错误的是( B D).(选择二项) A.int是基本数据类型,Integer是int的包装类,是引用数据类型 B.int的默认值是0,Int ...

  3. 尚学堂 高琪JAVA300集第十一章作业 编程题答案

    本人 JAVA初学者 在寻找这一方面的答案时没有看见 ,本着分享的精神 自己做了出来 也就传上来了 水平有限 存在有错的地方或者改进的方法 ,望大佬们可以提出 万分感谢. 1.1. 设计一个多线程的程 ...

  4. Java从入门到精通笔记20230106--百钱百鸡引出的疑问

    一.5文钱可以买1只公鸡,3文钱可以买1只母鸡,1文钱可以买3只雏鸡,现在用100文钱买100只鸡,那么公鸡.母鸡.雏鸡各有多少只? 1.Python写法 首先在Python刷题时遇到过,实现起来相对 ...

  5. java从入门到精通第四版明日科技书籍简介及下载

    Java从入门到精通(第4版)(附光盘) 平装 – 2016年10月20日 <Java从入门到精通(第4版)(附光盘)>从初学者角度出发,通过通俗易懂的语言.丰富多彩的实例,详细介绍了使用 ...

  6. java从入门到精通二十四(三层架构完成增删改查)

    java从入门到精通二十四(三层架构完成增删改查) 前言 环境准备 创建web项目结构 导入依赖和配置文件 创建层次模型 实现查询 实现添加 实现修改 完成删除 做一个用户登录验证 会话技术 cook ...

  7. Java从入门到精通十四(Lambda表达式)

    Java从入门到精通十四(Lambda表达式) Lambda的引入体验 实例一(抽象方法无参无返回值) 实例二(抽线方法有参无返回值) 实例三(抽象方法带参带返回值) lambda的表达式的简化操作 ...

  8. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!

    java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...

  9. Java从入门到精通十一(javaIO流)

    Java从入门到精通十一(javaIO流) IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据? 字节流说明 字节输入流读数据的方法 ...

  10. 详细:JAVA从入门到精通视频教程,后台学习历程

    详细:JAVA从入门到精通视频教程,后台学习历程 ==基础部分 由于百度分享有时效性 想要免费资源的请加645969403 1.java基础:高琪java开发300集 链接:https://pan.b ...

最新文章

  1. facerec = dlib.face_recognition_model_v1()面部识别器用法
  2. springData jpa update delete
  3. log nginx 客户端请求大小_nginx
  4. 毫末智行 Fluid 实践:云原生 AI 让汽车变得“更聪明”
  5. 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表
  6. ASP.Net Core Web API 如何返回 File。
  7. linux协议栈劫持,Linux系统优化之TCP协议栈优化-基本篇1
  8. React.Component与React.PureComponent的区别
  9. Ubuntu alias在/etc/profile重启无效解决
  10. 英文版的java项目简历_java开发英文简历范文
  11. Verilog HDL 实现 74HC595
  12. ubuntu20.04设置DNS
  13. ECshop 模板制作教程
  14. VBA 程序加密破解
  15. pdf转换器免费版下载
  16. 使用Python将mat文件转换为npy文件
  17. 计算机科学引论2021英文,计算机科学引论= Computing Essentials : 英文
  18. c/c++实现五子棋
  19. 局域网访问提示无法访问检查拼写_win10访问局域网出现“请检查名称的拼写”如何解决...
  20. linux 下使用百度云盘

热门文章

  1. Linux磁盘管理之GPT分区,磁盘管理之MBR与GPT分区
  2. laravel实现短信验证码功能
  3. 教你如何写初/高级前端简历【全新web前端入门视频教程】
  4. 道破产品迷局--识别合格ToB产品经理
  5. Cartographer论文精读-Real-Time Loop Closure in 2D LIDAR SLAM
  6. 手机通讯录excel转换vcf
  7. 极视角联合英伟达亮相CNCC大会,分享极星平台的进阶之路
  8. Element properties is not closed
  9. 超级表格pk王者农药,今天你五杀了么?
  10. CTF之Bugku网站被黑