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);
}
}
}
待续...
分享到:
相关推荐
标题中的"roller"很可能指的是Apache Roller,一个开源的博客服务器平台。这个平台允许用户创建、管理和发布多个博客,并且提供了丰富的API供开发者扩展其功能。接下来,我们将深入探讨与"roller"相关的技术知识点。...
在3DMAX中,卷曲修改器是实现复杂动态效果的重要工具,而Roller正是这样一款专为卷曲效果设计的插件。这款插件能够帮助用户轻松创建出卷曲形状的模型,不仅限于静态的造型,还能生成逼真的卷曲和展开的动画效果。 ...
在IT行业中,经常需要处理各种开源项目,以便定制、学习或优化。"roller"是一个颇受欢迎的开源博客引擎,它为开发者提供了一个强大的平台来创建、管理和发布个人或组织的博客内容。本文将详细讲解roller的安装过程,...
4. **配置与设置**:博主可能在博文中详细解释了如何配置Roller的数据库连接、管理员账号、博客模板等。这些配置通常在Roller的配置文件(如`WEB-INF/classes/roller.properties`)中进行。 5. **使用体验**:博主...
此外,此工具还能应用于STEM(科学、技术、工程、数学)教育中,通过跨学科的方式,让学生在实践中学习和应用多个领域的知识。例如,数学中的几何形状和函数关系,可以用来解释卷轴展开的轨迹;电子技术爱好者还可以...
Apache Roller是一个全功能,多用户和组博客服务器,适合大型和小型博客网站。它运行一个Java Web应用程序应该能够运行在任何Java EE服务器和关系数据库。目前,Apache Roller能很好的支持Tomcat和MySQL...仅供学习参考
### Apache Roller 安装指南详解 ...通过本文档的学习,你应该能够成功地安装和配置 Roller,从而开始创建自己的博客。随着进一步的实践和探索,你可以发掘出更多有关 Roller 的高级功能和定制化选项。
Roller 是一个全功能的多用户博客平台,于2002年首发,采用Java语言开发,设计精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS ...
《Roller 5 for Tomcat:一款便捷的博客平台整合指南》 在互联网技术日新月异的今天...通过深入学习和掌握Roller 5的使用,你将能够构建出一个功能完善、自定义程度高的在线社区,让思想和信息的交流更加自由和便捷。
该软件是一个开源的BLOG系统,是目前的最新版。 其中用到的技术有:SPRING HIBERNATE STRUTS等。 一共4部分
4. 配置环境变量:将roller的可执行路径添加到系统的PATH环境变量中,以便于命令行调用。 5. 运行安装脚本:对于Linux或macOS,可能是bash安装脚本;对于Windows,可能是一个批处理文件。 6. 数据库配置:根据需求...
这个压缩包"apache-roller-4.0.1"包含了Apache Roller的第4.0.1版本,这是一个基于Java技术构建的Web应用程序。接下来,我们将深入探讨Apache Roller的核心功能、特性以及与Java相关的技术细节。 1. **Apache ...
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"是Roller项目的4.0.1版本的源码,对开发者来说,这是一个深入了解Roller工作原理和学习Java Web开发的宝贵资源。 1. **Java技术栈**: Apache Roller的源代码基于Java语言编写,...
标题中的"Roller bearing dynamics.zip_Roller bearing_bearing_bearing Rolle"暗示了这是一个关于滚子轴承动力学的压缩包,包含与滚子轴承相关的计算和分析。描述中提到的"可对圆柱滚子轴承动力学进行求解,其中...
毕竟网上关于roller4的资料少之又少.对于cas的单点集成就更是少的可怜.我试验了一下roller自带的security.xml配置的cas方案.简直报错的夸张.根本没发用.roller使用的是acegi的用户验证框架.我自己下了一套acegi配置...