码云: https://gitee.com/forxiaoming/JavaBaseCode/blob/master/EasyCoding/src/exception/index.md

5.2 try 代码块

FinallyReturn.java
finally 代码块 必选执行的代码块,不 管是否有异常产 生,即 使发生
OutOfMemory rror 也会执行 通常用于处理善后清理工作。如果 finally 代码块没有
执行,那么有三种可能·

  • 没有进入 try 代码块。
  • 进入 代码块 但是代码运行中出现了死循环或死锁状态。
  • 进入 try 代码块 但是执行了 System exit() 操作。

  • 注意, finally 是在 return 表达式运行后执行的 此时将要 return 的结果已经被暂
    存起来, 待finally 代码块执行结束后再将之前暂存的结果返回;

5.4.1 日志规范

  • 命名: appName_logType_logName.log
  1. 预先判断日志级别
    使用条件判断形式; 使用占位符形式(避免字符串拼接);
  2. 避免无效日志打印
    必须配置 additivity=false, 避免重复打印;
    设置生命周期; 及时清理过期日志;
  3. 区别对待错误日志
  4. 保证记录内容完整
    一定要输出异常堆栈,如 logger.error("xxx" + e.getMessage, e);
    如果输出对象实例, 确保覆写了toString();

5.4.2 日志框架

log4j, logback, jdk-logging, slf4j, commons-logging等;

  1. 日志门面
  2. 日志库
  3. 日志适配器

《码出高效 Java开发手册》第五章 异常与日志的更多相关文章

  1. 《码出高效 Java开发手册》第二章 面向对象

    码云地址: https://gitee.com/forxiaoming/JavaBaseCode/tree/master/EasyCoding 第2章 面向对象 Object-Oriented Pro ...

  2. 《码出高效 Java开发手册》第一章计算机基础(未整理)

    码云地址: https://gitee.com/forxiaoming/JavaBaseCode/tree/master/EasyCoding

  3. 《码出高效 Java开发手册》第七章 并发与多线程

    码云: https://gitee.com/forxiaoming/JavaBaseCode/blob/master/EasyCoding/src/concurrency/multithreading ...

  4. 《码出高效 Java开发手册》第六章 数据结构与集合

    码云: https://gitee.com/forxiaoming/JavaBaseCode/blob/master/EasyCoding/src/collection/index.md 6.1 数据 ...

  5. 《码出高效 Java开发手册》第四章 走进JVM(未整理)

    码云地址: https://gitee.com/forxiaoming/JavaBaseCode/tree/master/EasyCoding

  6. 《码出高效 Java开发手册》第三章 代码风格

    第3章 代码风格 3.1 命名 符合语言特性 体现代码元素特征: Abstract xxx. Basexxxx.xxException.xxxTest等; 包名统一使用小写, 完整单词+点分隔符; 枚 ...

  7. [core java学习笔记][第十一章异常断言日志调试]

    第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...

  8. 码出高效,阿里巴巴JAVA开发手册1.4.0

    码出高效,阿里巴巴JAVA开发手册1.4.0阅读笔记 一.编程规约(三) 代码格式// 关键词if与括号之间必须有一个空格,括号内的f与左括号,0与右括号不需要空格 if (flag == 0) { ...

  9. 《码出高效:Java开发手册》第四章学习记录,内容想当的多,前后花了几天的时间才整理好。

    <码出高效:Java开发手册>第四章学习记录,内容想当的多,前后花了几天的时间才整理好. https://naotu.baidu.com/file/e667435a4638cbaa15eb ...

随机推荐

  1. 【洛谷4719】 动态dp(树链剖分,dp,矩阵乘法)

    前言 其实我只是为了过掉模板而写的ddp,实际应用被吊着锤 Solution 并不想写详细的过程 一句话过程:将子树中轻儿子的贡献挂到这个点上面来 详细版:(引用yyb) 总结一下的话,大致的过程是这 ...

  2. AJPFX的资金安全性

    AJPFX承诺保证客户资金安全,并严格按照英国的相关规章制度从事经营活动.客户资金存放于投资级银行的独立账户中.通过实行公司资产与客户资金分别保管,在发生无偿债能力的罕见情况下,客户可获退还独立存放资 ...

  3. SPOJ Longest Common Substring II

    题目连接:戳我 题目大意:求n个字符串的最长公共子串. 它的简化版--这里 当然我们可以用SA写qwq,也可以用广义SAM写qwq 这里介绍纯SAM的写法...就是对其中一个建立后缀自动机,然后剩下的 ...

  4. java 处理json格式数据中的转义斜杠

    1.{\"Count\":\"3\",\"ErrorString\":\"\",\"Success\" ...

  5. python 函数中使用全局变量

    python 函数中如果需要使用全局变量,需要使用 global + 变量名 进行声明, 如果不声明,那么就是重新定义一个局部变量,并不会改变全局变量的值 n [1]: a = 3 In [2]: d ...

  6. springboot入门之简单demo

    项目构建 我们采用maven构建SpringBoot工程,首先创建一个maven工程,对应的pom文件如下: <properties> <java.version>1.8< ...

  7. 【JS深入学习】——animationend 事件兼容性说明

    animationend 1.兼容性 animationend只有两种形式:animationend和webkitAnimationEnd webkitAnimationEnd 中 w 一定要小写,a ...

  8. 使用命令行创建一个vue项目的全部命令及结果

    dell@DESKTOP-KD0EJ4H MINGW64 /f/05 项目 $ npm install --global vue-cli npm WARN deprecated coffee-scri ...

  9. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 2、10个测验题

    1.What does the analogy “AI is the new electricity” refer to?  (B) A. Through the “smart grid”, AI i ...

  10. (转)修改及查看mysql数据库的字符集

    原文:http://www.cnblogs.com/donqiang/articles/2057972.html Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / - ...