1.异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器

2.错误分类

用户输入错误

设备错误

物理限制

代码错误

3.异常分类,所有的异常都是由Throwable继承而来,有两个分支,Error和Exception

Error类层次结构描述类Java运行时系统的内部错误和资源耗尽错误,如果出现这样的错误,除了通告给用户,并尽力使应用程序安全的终止之外,在没有其它办法

Exception有两个分支,一个分支派生于RuntimeException;另一个分支包含其它异常;划分这两个异常的规则是,由程序错误导致的异常属于RuntimeException,而程序本身没有问题,但由于像I/O错误这类问题导致的异常属于其它异常

派生于RuntimeException的异常包含下面几种情况

错误的类型转换

数组越界访问

访问null指针

不是派生于RuntimeException的异常包含下面几种情况

试图在文件尾部后面读取数据

试图打开一个不存在的文件

试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在

4.如果存在RuntimeException异常,那么一定是你的问题

5.java语言规范将派生于Error类或RuntimeException类的所有异常称为非受查异常,其它所有的异常称为受查异常,编译器将会核查是否为所有的受查异常提供了异常处理器

6.方法应该在其首部声明所有可能抛出的异常,这样可以从首部反映出这个方法可能抛出那类受查异常

7.不必将所有可能抛出的异常都进行声明,遇到下面四种异常应该抛出

调用一个抛出受查异常的方法

程序运行过程中发现错误,并且利用throw语句抛出一个受查异常

程序出现错误

Java虚拟机和运行时库出现的内部错误

8.如果在子类中覆盖了一个超类的方法,子类方法中声明的受查异常不能比超类方法中声明的异常更通用,如果超类方法中没有抛出任何受查异常,那么子类也不能抛出任何受查异常

9.一旦方法抛出了异常,这个方法就不可能返回到调用者

10.如果某个异常发生的时候没有在任何地方进行捕获,那么程序就会终止运行,并在控制台上打印出异常信息,其中包括异常的类型和堆栈的内容

11.再次抛出异常与异常链,在catch语句中可以抛出一个异常,这样做的目的是改变异常的类型;也有可能是想记录一个异常,在将它重新抛出,不做任何改变

12.如果方法中的任何代码抛出了一个在catch子句中没有声明的异常类型,那么这个方法就会立刻退出

13.不管是否有异常被捕获,finally子句都会被执行

14.try语句可以只有finally语句,而没有catch语句

15.如果try块抛出一个异常,finally块中的处理也抛出一个异常,那么finally块中的异常将会被抛出,原始的异常将会丢失;要改进的话,在finally块中继续抛出原异常

16.带资源的try语句块(这样的语句块在正常退出或存在异常时都会调用res.close()方法)可以很好的处理上一种情况,原来的异常会重新抛出,close()方法抛出的异常会被抑制

17.堆栈轨迹是一个方法调用过程的列表,它包含了程序执行过程中方法调用的特定位置

18.早抛出,晚捕获

19.断言,假设确信某个属性符合要求,并且代码的执行依赖于这个属性;断言机制允许在测试期间向代码中插入一些检查语句,当代码发布时,这些插入语句的检测语句将会被自动的移走

20.在默认情况下,断言被禁用;在启用或禁用断言时不必重新编译程序,启用或禁用断言时类加载器的功能

21.断言失败是致命的,不可恢复的错误,断言检查只用于开发和测试阶段

22.记录日志的常见用途是记录那些不可预料的异常

Java异常日志的查询语句_java学习异常,断言和日志相关推荐

  1. java 异常_Java学习——异常与异常处理

    学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心.--法布尔 一.异常简介 异常:程序出现意外导致中断指令流的一种事件. 异常是一个类,继承于Throwable类,其中包括2个主要大 ...

  2. java 日志管理源码_Java源码初探_logging日志模块实现

    一.用途 程序中记录日志,打印到控制台.文件等方式,记录过程可根据日志级别做筛选,日志格式可以自定义. 大概结构如下所示: 简要说明各个模块: (1) LogManager:管理LoggerConte ...

  3. java day27【DQL:查询语句、约束 、多表之间的关系 、范式 、数据库的备份和还原】...

    第一章  DQL:查询语句 1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的. ...

  4. java中的跳转语句_java中的跳转语句

    java中的跳转语句有两种:break和continue: 一.break语句 1. break语句适用于任何循环控制结构,从而是循环立即终止.当执行流程遇到break语句时,不管循环终止变量,或者布 ...

  5. java的mysql分页查询语句怎么写_java的mysql连库 增删改查语句、分页查询语句大全...

    //代码复制出来,修改一下bean,加载一下jar包,能直接用的,不懂加我Q 983331283 package cn.tootoo.entity; public class Page { priva ...

  6. java两个数据库连表查询语句_Java如何连接多个表并查询表中的数据内容?

    在Java编程中,如何连接多个表并显示表中的数据内容?假定数据库名称是:testdb,其中有两张表:employee和dept,employee表中有4条记录,dept表中有2条记录. 创建数据库表的 ...

  7. java中sql查询语句_JAVA中用 SQL语句操作小结

    1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...

  8. java 分页查询语句_Java实现分页查询

    MySQL分页语句:LIMIT M,N M:开始记录的索引.从0开始的 N:每次查询多少条. 每次查10条: 查第一页的:SELECT * FROM table LIMIT 0,10; 查第二页的:S ...

  9. java递归遍历xml所有元素_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...

    2019独角兽企业重金招聘Python工程师标准>>> xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd ...

最新文章

  1. C#new出来的结构体内存分配在堆上
  2. oracle多久断开连接,Oracle自动断开连接
  3. php mysql读取数组_php实现通用的从数据库表读取数据到数组的函数实例
  4. 这样去写你的 HTML
  5. 常用计算机检索技术的例子,专业检索常用方法及应用实例
  6. 基于ssh的多节点之间互信通信的实现
  7. 09. ajax跨域问题,同源策略
  8. 终于有人把分布式系统架构讲明白了
  9. 小微个人网站如何接入免费短信验证码
  10. 里程碑!家里的开发板能使用Dnspod的动态域名服务,稳定
  11. 两个数组合成一个json对象_js把两个json数组根据相同键值合并成一个数组
  12. 如何彻底的删除hao123_hao123太流氓!怎么从电脑彻底清除?
  13. AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣
  14. 《谁动了我的奶酪》读后感 他人感悟
  15. 用 Python 轻松将懂车帝视频转换为文本
  16. 论文格式之编辑页眉页码
  17. 快乐生活的1000+篇文章总结
  18. opentstack使用keypair文件登陆实例
  19. 恶补FPGA知识——亚稳态
  20. (for 循环)编程找出四位整数 abcd 中满足 (ab+cd)(ab+cd)=abcd 的数

热门文章

  1. 错误fatal error: zlib.h: 没有那个文件或目录的解决办法
  2. OpenCV形态学变换函数morphologyEx()闭运算的使用
  3. 链表反转2(Reverse Linked List II)
  4. Butterknife 的简单使用 和 配合 Butterknife的插件 Zelezny
  5. 8月21日科技联播:支付宝转账遭骗可一键撤回,美团欲9月20日上市,估值不少于$600亿...
  6. vim的介绍与常用的命令
  7. 30天敏捷生活(3):设计你的生活看板
  8. 知识图谱资源-NLP
  9. go语言条件语句 if else
  10. 网站高并发及高并发架构详解