`
achui_1980
  • 浏览: 18533 次
  • 来自: ...
社区版块
存档分类
最新评论

Dwr异常处理

阅读更多

今天在弄dwr的异常处理,想把java后台的异常信息,在浏览器展示出来,原来没处理这块,导致dwr一直报Error错误,也不知道是什么错,需要后台翻日志,现在改造了一下,终于把异常的堆栈信息加载到前台了。

 

Dwr在异常处理的时候,有很多种方式,全局的方式,部分函数的方式,具体的写法Dwr的官方网站上有说(http://directwebremoting.org/dwr/documentation/browser/errors.html),这里就不介绍了。

 

我这里用的是全局的方法,机配置一个全局的异常处理函数。如果java后台不做处理的话,那么Dwr的全局函数,只能显示你在Exception里写的消息,不在Exception里的消息,是无法显示出来的,这就对我们排错造成困难。

 

因此我对后台的异常信息作了处理,让java抛出的异常信息都记录下来

 

代码如下(客户端):

 

function errorHander(msg,ex){
	if(QH_LOADMASK){
		QH_LOADMASK.hide();
	}
	var errorMsg = "系统堆栈:\n"+msg;
	var stackMsg = "";
	var programMsg = '程序堆栈:\n--------------------------------------------------------------------\n';
	var continueCount = 0;
	for(var j=0; j<ex.stackTrace.length; j++){
		var obj = ex.stackTrace[j];
		stackMsg += "	at "+ obj.className+"."+obj.methodName+"("+obj.fileName+" "+obj.lineNumber+")\n";
	}
	if(stackMsg != ""){
		Ext.Msg.show({
			title:'错误堆栈',
			//msg:"",
			//defaultTextHeight:500,
			width :900,
			icon:Ext.Msg.ERROR,
			buttons:Ext.Msg.OK,
			prompt:true,
			multiline:450,
			value:errorMsg+"\n"+programMsg +stackMsg,
			maxWidth:900
		});
	}
}
//配置DWR异常处理的全局处理函数
DWREngine.setErrorHandler(errorHander);

 服务端:

public int saveOrUpdateRecords(List records) throws DAOException {
		try {
			return (Integer)super.getHibernateTemplate().execute(new BatchSoUCallback(records));
		} catch (DataAccessException ex) {
			String msg = ExceptionStackTracePaser.paserStactTrace(ex);
			throw new DAOException("DataAccessException:" + msg);
		}
		
	}

 

public class ExceptionStackTracePaser {

	/**
	 * 描述:解析异常信息的堆栈信息,并将其转换为字符串
	 * @param ex
	 * @return
	 * 返回值:String
	 */
	public static final String paserStactTrace(Exception ex){
		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
		PrintStream stream = new PrintStream(outputStream);
		ex.printStackTrace(stream);
		return ex.getMessage()+"\r\n"+outputStream.toString();
	}
}

 这样在前台就可以抓住其他部分的异常信息了。

 

注:ByteArrayOutputStream 用的是apache commons 的io包里面的类

分享到:
评论

相关推荐

    dwr异常处理

    NULL 博文链接:https://chenming100-1976.iteye.com/blog/809288

    dwr对象处理dwr对象处理dwr对象处理

    - DWR提供了错误处理机制,可以通过JavaScript的异常处理结构来捕获调用Java方法时可能出现的错误。 总之,DWR提供了一种强大的机制,使Web应用能够轻松地实现前后端交互,增强了用户体验,特别是在实时数据更新和...

    dwr 查询返回list处理

    7. **错误处理**:在调用服务端方法时,应考虑异常处理。当服务端抛出异常时,DWR会提供一个回调函数来处理错误,我们需要确保有适当的错误提示和恢复机制。 8. **性能优化**:大量数据返回时,可能需要分页或延迟...

    dwr笔记 dwr自学资料

    2. **JavaScript与Java的桥接**:DWR通过动态生成JavaScript库来映射Java对象和方法,使得JavaScript可以直接调用Java方法,同时处理类型转换和异常处理。 3. **安全机制**:DWR提供了一套安全机制,包括基于IP地址...

    适合初学者的DWR基本使用视频教程

    资源名称:适合初学者的DWR基本使用视频教程资源目录:【】dwr01_dwr的安装【】dwr02_dwr的转换器和异常处理【】dwr03_dwr的util的介绍【】dwr04_文件上传和与spring进行整合【】dwr05_dwr的debug和获取ServletAPI...

    dwr对各种类型返回值的处理实例

    这使得在JavaScript中可以方便地进行异常处理。 8. **异步和同步调用**: DWR提供了异步和同步两种调用方式。异步调用不会阻塞浏览器,而同步调用会等待服务器响应完成后再继续执行后续代码。 9. **Caching**: ...

    dwr3api+DWR文档.pdf

    7. **错误处理**:当服务器端或客户端出现错误时,DWR提供了一套处理机制,包括异常的捕获和返回给前端。 8. **DWR与Ajax**:DWR是如何简化AJAX开发的,如何利用DWR实现异步数据更新,以及与传统AJAX请求的区别。 ...

    DWR中文文档 (DWR 2.0)

    **8.2 错误和异常处理**:DWR提供了强大的错误和异常处理机制,帮助开发者更好地管理异常情况。 1. **错误处理**:通过回调函数中的errorHandler属性来处理可能出现的错误。 2. **异常**:了解DWR可能抛出的各种...

    dwr+spring实例

    6. **异常处理**: 当服务器端发生错误时,DWR可以将异常信息转换为JavaScript错误对象,使得客户端能够捕获并处理这些异常。这对于提供良好的用户体验至关重要。 综上所述,"DWRSpring实例"是一个很好的学习资源...

    DWR 视频教程 使用DWR开发AJAX For JavaEE

    7. **错误处理**:学习DWR提供的错误处理机制,如何捕获并处理客户端和服务器端的异常。 8. **集成与调试**:理解如何将DWR与其他前端框架(如jQuery或AngularJS)集成,并使用DWR的内置调试工具进行问题排查。 9....

    dwr经典实例(9个常用实例)

    7. **异常处理**: DWR能够处理服务器端抛出的异常,并将其转换为客户端可读的错误信息。 8. **对象映射**: DWR可以自动将Java对象转换为JavaScript对象,反之亦然,简化了数据交换的处理。 9. **自定义序列化与反...

    DWR2.0 中文手册

    5. **错误处理**:DWR提供了丰富的错误处理机制,包括客户端和服务器端的异常处理,以及错误信息的传递和显示。 6. **缓存策略**:DWR 2.0支持缓存策略,可以缓存远程调用的结果,提高性能,减少服务器压力。 7. *...

    DWR小代码小例子

    DWR提供了错误回调机制,当Java方法抛出异常或通信失败时,可以捕获并处理这些错误。 8. **性能优化**:DWR支持缓存、批量调用和压缩等优化技术,以提高Web应用的性能。例如,可以设置缓存策略以减少不必要的网络...

    ajax的dwr包

    6. **错误处理**:DWR提供了友好的错误处理机制,可以在客户端捕获并显示服务器端的异常信息。 在使用DWR时,开发者首先需要在服务器端创建可远程访问的Java类和方法,然后在客户端使用DWR生成的JavaScript接口与...

    extjs_dwr整合例子

    DWR提供了异常处理机制,可以在JavaScript中捕获服务器端抛出的异常。同时,要确保DWR的安全配置,防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 这个"Extjs+Dwr"的压缩包示例可能包含了相关的HTML、JavaScript...

    dwr学习教程3

    3. **错误处理**:DWR提供了错误处理机制,可以在客户端捕获和处理服务器端的异常。 4. **集成其他技术**:DWR可与Spring、Struts等框架无缝集成,提升开发效率。 通过【DWR视频教程3】,你将系统学习到如何配置...

    DWR2.0 整合Spring2.0

    8. **异常处理**:DWR2.0的异常信息可以通过Spring的统一异常处理机制进行捕获和处理,提供更友好的错误提示,提高用户体验。 整合DWR2.0和Spring2.0的过程通常包括以下几个步骤: 1. 添加DWR和Spring的依赖库到...

    dwr和简单的文件上传

    最后,关于错误处理,DWR提供了回调函数,如上面JavaScript代码所示的`onUploadSuccess`和`onUploadError`。这些函数可以在客户端捕获服务器返回的任何异常信息,为用户提供适当的反馈。 总结起来,使用DWR进行文件...

    DWR3.rar

    6. **错误处理**:DWR提供了丰富的错误处理机制,可以捕获并显示服务器端抛出的异常,为调试和问题定位提供帮助。 7. **缓存**:DWR支持缓存策略,可以缓存服务器返回的结果,减少不必要的服务器负载。 8. **可...

Global site tag (gtag.js) - Google Analytics