首页 > 其他分享 >异常、断言和日志

异常、断言和日志

时间:2022-09-28 14:33:41浏览次数:54  
标签:断言 检查 抛出 try finally catch 日志 异常

异常

Throwable类

  • Exception和Error都派生于Throwable类

Exception类

  • 异常有两个分支:
    1. RuntimeException运行时异常,一般为程序错误导致:比如:
    • 错误的强制类型转换
    • 数组访问越界
    • 访问null指针
    1. 其他异常(也称为检查型异常):需要主动处理这类异常。比如
    • 文件异常IOException
    • Class未找到异常

声明异常

  • 在方法首部通过throws抛出所有检查型异常,非检查型异常应该自行处理
  • 子类覆盖超类方法时,抛出的检查型异常不能比超类的大

捕获异常

  • 多个不存在继承关系的异常可以合并到同一个catch块,用 “|” 分隔
  • 多个catch块声明的异常类型,超类不能在子类之前,否则永远进不了子类catch块
  • catch块中可以再次抛出异常,通常用于改变异常类型,建议将原始异常设置为新异常的“原因”,这样在捕获到新异常时不会丢失原始异常的细节
  • 一个方法中发生了检查型异常,但这个方法不允许抛出检查型异常(比如父类方法没有抛出检查型异常),就可以包装成一个运行时异常,将检查型异常添加到新一场的原因中

finally

  • 不论try块有没有抛出异常,或者catch块是否捕获到异常,或者catch块有没有再次抛出异常,finally块的代码都将执行
  • 常用于释放资源
  • 可以只有try-finally,没有catch块
  • finally块中如果有return语句,将会改变流程,覆盖try中的return

try-with-resources语句

try(Resource res=...){
...
}
  • 如果资源实现了AutoCloseable接口,在处理资源时可以替代在finally中释放资源的办法,try块结束后会自动关闭资源
  • 在原始的 try-finally方式中关闭资源,finally也可能抛出异常,这就很麻烦,try-with-resources方式如果在关闭资源时发生异常,会将close异常自动添加到try块的原始异常中,重新抛出原始异常
  • 可以有catch块,也可以有finally块,在关闭资源后执行

日志

标签:断言,检查,抛出,try,finally,catch,日志,异常
From: https://www.cnblogs.com/studyhaha/p/16737950.html

相关文章

  • 日志loki+grafana安装和使用
    一、loki说明主要3个插件loki      主要负责日志的存储和收集,主要安装在日志存储服务器grafana    负责日志页面的展示,主要安装在主存储服务器p......
  • spring事务嵌套回滚的异常问题
    **Transactionrolledbackbecauseithasbeenmarkedasrollback-only”**代码逻辑很简单:try{方法B//抛出异常}catch(Exceptione){//异常打印}异常被try......
  • KingbaseES V8R6运维案例之---sys_waldump解析wal日志
    案例说明:wal日志文件记录了,事务操作的redo日志信息,由于wal日志文件是二进制文件,无法直接读取其文件内容。sys_waldump可以解决这个问题,通过sys_waldump来解析wal日志来......
  • MySQL主从异常处理Errno: 1292-REPLICATE_WILD_IGNORE_TABLE的使用
    一、Slave错误信息mysql>showslavestatus\G;***************************1.row***************************Slave_IO_State:Waitingformastertosendeven......
  • Mysql三种日志(binlog,redolog,undolog)的作用和区别
    Mysql有三种很重要的日志也是面试经常涉及到的考点,分别是binlog、redolog和undolog,这里面binlog是server层实现的日志,而redolog和undolog都是引擎层(innodb)实现的......
  • fzq日志打印-查看-规范
    日志通用代码///<summary>//////</summary>///<paramname="node">信息节点,报告,撤回,签收等</param>///<paramname="actio......
  • Linux网络日志分析与流量监控 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1OG-5_4ebMeQjSUeO_3l-IA点击这里获取提取码 ......
  • 查看Linux系统日志
    1.各种日志文件位置/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息/var/log/cron:记录crond计划任务产生的事件信息/var/log/dmesg......
  • 【Java基础】Java异常分类和常见异常
    1.异常异常:执行中发生的不正常情况。分为两类:Error:JVM系统内部错误、资源耗尽等严重情况。比如StackOverflowError和OutOfMemory。Exception:空指针访问、试图读取......
  • TimedRotatingFileHandler 固定时间日志切割
    TimedRotatingFileHandler:创建固定时间间隔的日志,它被集成在logging中,直接调用进行实例化和配置就可以使用TimedRotatingFileHandler(filename[,when[,interval[......