zoukankan      html  css  js  c++  java
  • java的接口如何设计异常的理解

    对于写接口时候,一直不太合理的写try-catch和throws。简单记录下心得。

    try-catch捕获异常时候,在catch中进行日志的记录时候,
    建议使用log.error("方法名或者可检索到的语句:",e),不建议使用e.getMessage()。
    
    public void test02(){
            try {
                int a = 1 / 0;
            }catch (Exception e){
                //建议使用
                log.error("com.ethan.controller.NoTmsTest.test02:",e);
                //不建议使用
                log.error("com.ethan.controller.NoTmsTest.test02:",e.getMessage());
            }
        }
    
    ------输出如下
    
    2021-11-25 19:20:32,308  ERROR main com.ethan.controller.NoTmsTest  [//] com.ethan.controller.NoTmsTest.test02:
    java.lang.ArithmeticException: / by zero
    	at com.sinolife.tms.backstage.controller.NoTmsTest.test02(NoTmsTest.java:36)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    
    2021-11-25 19:20:32,312  ERROR main com.ethan.controller.NoTmsTest  [//]   com.ethan.controller.NoTmsTest.test02B:
    

    其中,

    1. 使用方法名或者可检索的语句,可以准备的通过日志定位到错误的位置,不然很难通过日志去检索到当前接口的错误地方;
    2. 使用e而不是e.getMessage(),是因为e可以显示出报错的原因,而e.getMessage()不会显示报错原因。
    3. 其实最重要的原因是我们要很方便的能够通过无穷尽的日志文件中定位到我们出错的接口,并且看到详细的报错信息。
  • 相关阅读:
    HTML5入门5---HTML5控件元素
    HTML5入门4---HTML5 与 HTML4 同一网页的不同写法
    HTML5入门3---视频播放器
    HTML5入门2---js获取HTML元素的值
    JTable指定单元格加控件
    JTable单元格放自定义控件(一)-如何在JTable的单元格放JPanel
    数据库外键的使用
    LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    mvn 安装ojdbc6.jar
    Apache 下SVN项目管理使用说明
  • 原文地址:https://www.cnblogs.com/ethanSung/p/15604449.html
Copyright © 2011-2022 走看看