异常与日志

Posted 源码王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常与日志相关的知识,希望对你有一定的参考价值。

在程序中如果遇到异常,摘取几个片断进行说明:

1.直接抛出底层异常,不打印日志,但前提是底层异常提供了  Xxxx(String msg)这样的构造方法,以便抛出时可以进一肯细化异常信息,以便调用方明确为什么发生异常。

protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException {
        for (HandlerAdapter ha : this.handlerAdapters) {
            if (logger.isTraceEnabled()) {
                logger.trace("Testing handler adapter [" + ha + "]");
            }
            if (ha.supports(handler)) {
                return ha;
            }
        }
        throw new ServletException("No adapter for handler [" + handler +
                "]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler");
    }

 

2.打印异常,并抛出异常

@Override
    public void process() throws BankApiException {
        try {
            BankRequest request = context.getRequest() ;
            String url = request.obtainUrl() ;
            context.setUrl(url);
        }catch(Exception e) {
            LOGGER.error(e.getMessage(), e); // 记录底层的异常
            //抛出新的转译后的异常通知调用者
            throw new BankApiException(BankApiErrType.URLCHECKERR.getValue(),"获取API URL失败") ;
        }
    }

 

以上是关于异常与日志的主要内容,如果未能解决你的问题,请参考以下文章

应用程序立即崩溃,没有异常或日志(看起来像 xamarin/mono 错误)

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

argparse 代码片段只打印部分日志

常用python日期日志获取内容循环的代码片段

解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段

使用片段的谷歌地图