`
ember_319
  • 浏览: 21143 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

学习Roller4中的Exception

    博客分类:
  • Java
 
阅读更多

Roller4中,所有的异常都直接或间接得是RollerException的子类,从它的代码中可以看到怎样构建异常的StackTrace结构。

/**
 * Base Roller exception class.
 */
public abstract class RollerException extends Exception {
    
    private final Throwable mRootCause;
    
    
    /**
     * Construct emtpy exception object.
     */
    public RollerException() {
        super();
        mRootCause = null;
    }
    
    
    /**
     * Construct RollerException with message string.
     * @param s Error message string.
     */
    public RollerException(String s) {
        super(s);
        mRootCause = null;
    }
    
    
    /**
     * Construct RollerException, wrapping existing throwable.
     * @param s Error message
     * @param t Existing connection to wrap.
     */
    public RollerException(String s, Throwable t) {
        super(s);
        mRootCause = t;
    }
    
    
    /**
     * Construct RollerException, wrapping existing throwable.
     * @param t Existing exception to be wrapped.
     */
    public RollerException(Throwable t) {
        mRootCause = t;
    }
    
    
    /**
     * Get root cause object, or null if none.
     * @return Root cause or null if none.
     */
    public Throwable getRootCause() {
        return mRootCause;
    }
    
    
    /**
     * Get root cause message.
     * @return Root cause message.
     */
    public String getRootCauseMessage() {
        String rcmessage = null;
        if (getRootCause()!=null) {
            if (getRootCause().getCause()!=null) {
                rcmessage = getRootCause().getCause().getMessage();
            }
            rcmessage = (rcmessage == null) ? getRootCause().getMessage() : rcmessage;
            rcmessage = (rcmessage == null) ? super.getMessage() : rcmessage;
            rcmessage = (rcmessage == null) ? "NONE" : rcmessage;
        }
        return rcmessage;
    }
    
    
    /**
     * Print stack trace for exception and for root cause exception if htere is one.
     * @see java.lang.Throwable#printStackTrace()
     */
    public void printStackTrace() {
        super.printStackTrace();
        if (mRootCause != null) {
            System.out.println("--- ROOT CAUSE ---");
            mRootCause.printStackTrace();
        }
    }
    
    
    /**
     * Print stack trace for exception and for root cause exception if htere is one.
     * @param s Stream to print to.
     */
    public void printStackTrace(PrintStream s) {
        super.printStackTrace(s);
        if (mRootCause != null) {
            s.println("--- ROOT CAUSE ---");
            mRootCause.printStackTrace(s);
        }
    }
    
    
    /**
     * Print stack trace for exception and for root cause exception if htere is one.
     * @param s Writer to write to.
     */
    public void printStackTrace(PrintWriter s) {
        super.printStackTrace(s);
        if (null != mRootCause) {
            s.println("--- ROOT CAUSE ---");
            mRootCause.printStackTrace(s);
        }
    }
    
}
 待续...

1
0
分享到:
评论

相关推荐

    roller

    标题中的"roller"很可能指的是Apache Roller,一个开源的博客服务器平台。这个平台允许用户创建、管理和发布多个博客,并且提供了丰富的API供开发者扩展其功能。接下来,我们将深入探讨与"roller"相关的技术知识点。...

    3DMAX卷曲修改器Roller下载

    在3DMAX中,卷曲修改器是实现复杂动态效果的重要工具,而Roller正是这样一款专为卷曲效果设计的插件。这款插件能够帮助用户轻松创建出卷曲形状的模型,不仅限于静态的造型,还能生成逼真的卷曲和展开的动画效果。 ...

    roller安装

    在IT行业中,经常需要处理各种开源项目,以便定制、学习或优化。"roller"是一个颇受欢迎的开源博客引擎,它为开发者提供了一个强大的平台来创建、管理和发布个人或组织的博客内容。本文将详细讲解roller的安装过程,...

    Roller初体验

    4. **配置与设置**:博主可能在博文中详细解释了如何配置Roller的数据库连接、管理员账号、博客模板等。这些配置通常在Roller的配置文件(如`WEB-INF/classes/roller.properties`)中进行。 5. **使用体验**:博主...

    教育科研-学习工具-Roller卷轴式剃须组件.zip

    此外,此工具还能应用于STEM(科学、技术、工程、数学)教育中,通过跨学科的方式,让学生在实践中学习和应用多个领域的知识。例如,数学中的几何形状和函数关系,可以用来解释卷轴展开的轨迹;电子技术爱好者还可以...

    Apache Roller

    Apache Roller是一个全功能,多用户和组博客服务器,适合大型和小型博客网站。它运行一个Java Web应用程序应该能够运行在任何Java EE服务器和关系数据库。目前,Apache Roller能很好的支持Tomcat和MySQL...仅供学习参考

    Apacheroller

    ### Apache Roller 安装指南详解 ...通过本文档的学习,你应该能够成功地安装和配置 Roller,从而开始创建自己的博客。随着进一步的实践和探索,你可以发掘出更多有关 Roller 的高级功能和定制化选项。

    开源Java博客Roller v5.0 for tomcat.zip

    Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...

    roller5 for tomcat

    《Roller 5 for Tomcat:一款便捷的博客平台整合指南》 在互联网技术日新月异的今天...通过深入学习和掌握Roller 5的使用,你将能够构建出一个功能完善、自定义程度高的在线社区,让思想和信息的交流更加自由和便捷。

    Roller.part4

    该软件是一个开源的BLOG系统,是目前的最新版。 其中用到的技术有:SPRING HIBERNATE STRUTS等。 一共4部分

    roller install、user、template guide

    4. 配置环境变量:将roller的可执行路径添加到系统的PATH环境变量中,以便于命令行调用。 5. 运行安装脚本:对于Linux或macOS,可能是bash安装脚本;对于Windows,可能是一个批处理文件。 6. 数据库配置:根据需求...

    apache-roller-4.0.1

    这个压缩包"apache-roller-4.0.1"包含了Apache Roller的第4.0.1版本,这是一个基于Java技术构建的Web应用程序。接下来,我们将深入探讨Apache Roller的核心功能、特性以及与Java相关的技术细节。 1. **Apache ...

    roller-part01

    apache-roller-srapaapache-roller-srcche-roller-srccapache-rolaapache-roller-srcpache-roller-srcler-srcapapache-roller-srcache-roller-srcapache-roller-src

    apache-roller-src-4.0.1 源代码

    源代码包"apache-roller-src-4.0.1"是Roller项目的4.0.1版本的源码,对开发者来说,这是一个深入了解Roller工作原理和学习Java Web开发的宝贵资源。 1. **Java技术栈**: Apache Roller的源代码基于Java语言编写,...

    Roller bearing dynamics.zip_Roller bearing_bearing_bearing Rolle

    标题中的"Roller bearing dynamics.zip_Roller bearing_bearing_bearing Rolle"暗示了这是一个关于滚子轴承动力学的压缩包,包含与滚子轴承相关的计算和分析。描述中提到的"可对圆柱滚子轴承动力学进行求解,其中...

    Roller4.0的另外一套cas简单解决方案

    毕竟网上关于roller4的资料少之又少.对于cas的单点集成就更是少的可怜.我试验了一下roller自带的security.xml配置的cas方案.简直报错的夸张.根本没发用.roller使用的是acegi的用户验证框架.我自己下了一套acegi配置...

Global site tag (gtag.js) - Google Analytics