java编程之Exception handlers should preserve the original exception
2015-09-02 11:03
806 查看
捕捉到异常后, 原始异常的信息以及栈追溯信息应该被log下来或者向上传递,下面是一些关于java异常处理可能会出现问题的地方,希望对大家有所帮助!
不兼容代码例子:
// Noncompliant - exception is lost try { /* ... */ } catch (Exception e) { LOGGER.info("context"); } // Noncompliant - exception is lost (only message is preserved) try { /* ... */ } catch (Exception e) { LOGGER.info(e.getMessage()); } // Noncompliant - exception is lost try { /* ... */ } catch (Exception e) { throw new RuntimeException("context"); }
兼容代码例子:
try { /* ... */ } catch (Exception e) { LOGGER.info(e); } try { /* ... */ } catch (Exception e) { throw new RuntimeException(e); } try { /* ... */ } catch (RuntimeException e) { doSomething(); throw e; } catch (Exception e) { // Conversion into unchecked exception is also allowed throw new RuntimeException(e); } e.getMessage获得的异常信息远不如直接通过logger.log(Level.SEVERE,"",异常对象)这个方式记录的信息全,强烈建议采用后者 来记录异常信息。
相关文章推荐
- SpringMVC 使用JSR-303进行校验 @Valid
- SSH项目问题【六】java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 看马士兵javase视频看第2章基础语法发现错误
- Java性能优化(7):改写equals时遵守通用约定
- 解决Eclipse快捷键被其他软件占用
- Java 中类和方法修饰符
- Java基础知识强化14:Java死亡竞赛题目解析
- eclipse新建android项目后,不会自动生成activity,或者出现This Android SDK requires Android Developer Toolkit version
- java foreach循环中调用remove 抛出java.util.ConcurrentModificationException
- Spring笔记――12.访问资源
- java synchronized详解
- 两个栈实现一个队列以及两个队列实现一个栈(Java)
- Java多线程
- Struts2 part 1:快速入门
- java获取整数小数
- 学习日志---二叉树概念与遍历(递归)
- Struts2 二、为Action的参数注入值
- Struts2 二、为Action的参数注入值
- 怎么获取java项目中的文件
- Java____利用自带包用MD5加密__关于图片上传的思考