关于DWR异常处理小结

简介: 在脚本engine.js中包含DWR的核心部分,通常情况下你的应用应该包含它.通常情况下还会包含util.

在脚本engine.js中包含DWR的核心部分,通常情况下你的应用应该包含它.
通常情况下还会包含util.js,它包含一些可选的实用方法.
Demo.js是在DWR中动态定义它还包含一个对应的远程版本就是Demo.java.如果当你看到
如下代码:
Demo.Method1=function{callback,p0}
Demo.Method2=function{callback}
所以可以看出第一个参数是回调函数,p0才可能是你要传回的参数

同样在engine.js中常用的方法有
DWREngine.setErrorHandler(function)对错误的处理
DWREngine.setWarningHandler(function)对警告的处理
DWREngine.setTimeout() 设置超时的时间

因为Ajax含义中的"A"就是指的 asynchronous(异步),那么每个Demo.Method执行都是在异步
情况下完成的.如果要指定全局的超时设置那么就可以通过DWREngine.setTimeout()来完成

同样的道理,DWREngine.setErrorHandler(function),DWREngine.setWarningHandler(function)
用来设置全局的错误和警告处理

当然如果想要真对某一个function来进行超时/警告/错误处理的话也是可以的
如下:
  Demo.method(params, {
    callback:function(data) { alert("it worked"); },
    errorHandler:function(message) { alert("it broke"); },
    timeout:1000
  });

DWR可以捕获自定义的错误异常如:在ErrDemo.java中实现
public class ErrDemo {
  public String getData() {
    throw new NullPointerException("message");
  }
}

在客户段调用
function eh(msg) { //错误函数
  alert(msg);
}

DWREngine.setErrorHandler(eh);
ErrDemo.getData(function(data) { alert("123"); });
程序的结果是eh跳出对话框,这个时候的msg相当调用
Exception.getMessage()方法的值

如果要实现自定义Exception的捕获也是可以的
public class ErrDemo {
  public String getData() {
    Date when = new Date();//FunkyException extend Exception
    throw new FunkyException("message", when);
    // FunkyException 实现getWhen() method
  }
}

客户端
function eh(msg, ex) {
  alert(msg + ", date=" + ex.when);
}

DWREngine.setErrorHandler(eh);

ErrDemo.getData(function(data) { alert("123"); });
结果是跳出的对话框中包含"message, date=Mon Jan 01 2008 10:00:00 GMT+0100"

 

 

目录
相关文章
|
关系型数据库 MySQL 数据库连接
PHPStudy(小皮)V8.1 中使用cmd进入MySQL命令行模式
1、找到phpstudy_pro中的mysql可执行文件所在的位置(安装位置) 把这个路径进行复制:D:\phpstudy_pro\Extensions\MySQL5.7.26\bin image.png
2257 0
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
编解码 计算机视觉
如何用ffmpeg截取视频片段&截取时间不准确的坑
之前在工作中,有遇到需要程序化截取视频片段的场景,这里使用ffmpeg命令行就可以很容易实现,这里也记录下我们使用过程中遇到的坑,希望对大家也有所帮助。 举个例子,当我们要截取视频文件中input.mp4的第15秒到第98秒时,ffmpeg命令行可以这么写:
1186 0
|
数据采集 消息中间件 NoSQL
数据预处理-数据清洗需求分析|学习笔记
快速学习数据预处理-数据清洗需求分析
1005 0
数据预处理-数据清洗需求分析|学习笔记
|
2天前
|
云安全 监控 安全
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
964 5
|
13天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1101 41
|
9天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
673 39
|
13天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
776 69
大厂CIO独家分享:AI如何重塑开发者未来十年