webMethods中的debug

程序开发中最经常做的事情莫过于debug,在webMethods中也是如此。掌握有效的debug方法可以提高程序开发的效率,而了解更多的debug方式则让bug无处遁形。

在这里我列举几个常用的debug方式。

一、最常用的单步调试和Trace。

在developer中,单步调试的快捷键是F6,Trace是F5。本人在发现程序存在错误的时候最先使用的找错方式便是用Trace运行程序,当程序跑到异常的地方,trace会中断运行,并且可以留下运行过的标志。我们可以很清楚地看到出错的地方。接着我们便可以拿出单步调试了,trace到附近,再一步一步跑进去,看看pipeline里面传的是什么值,是否符合逻辑。

二、规范:try-catch

当发现程序存在异常时,我们可以尝试使用try-catch捕获这个异常。通过分析getlasterror中的异常信息,很有可能就能找到异常出现的位置和原因。当然也有分析不出来原因的情况,这就需要有丰厚的经验和逻辑推理的能力了。try-catch在编写程序的时候也是十分重要的规范,因为一旦异常发生,我们不希望程序就此中断,而是让程序接着跑完,但是异常信息需要保留下来给我们查看。这个方法跟trace相比的优点在于debug的时间短,因为我们只需要直接运行程序就好了。当我们要debug一段十分长的代码,又或者是要进行一个大循环的话,try-catch是一个好工具。

三、pipeline debug

这个方法在使用invoke调用程式的时候十分有效。首先,我们需要设置service的PipeLine Debug值为save,再运行程序,当跑完程序之后回去将pipeline debug设置为restore(override),再单独运行需要调试的程序,这个时候pipeline里面会保存上一次我们运行程序时用过的参数。除了这样设置,我们也可以用wmPublic/pub/flow中的savePipeline和restorePipeline方法。这个方法能很有效地帮助我们调试不可以使用单步调试进入的程式。

四、debugLog

wmPublic/pub/flow中除了刚才提到的savePipeline和restorePipeline方法,还有debugLog方法。这个方法在调用的时候会往服务器的log-server中发送message,通过这个message我们可以知道程式有没有跑到这个对应位置。这个方法在有些时候还是十分实用的,例如:当我们在远程客户端调用IS上的service时,我们可能并不知道程式有没有被调用,而如果我们在程式中加入debugLog方法,我们就可以去服务器的log中找我们预留的message,找到了便说明调用成功了。

五、小技巧

在debug的过程中我们可以使用的方法远不止上述的这些,例如我们想检测一下某个参数超过了一定的位数会不会造成影响的时候,我们可以直接hardcode这个参数进行调试;又例如我们在找不到错误发生的位置的时候,我们可以找一下这个程式的引用,看看在某些引用中是否发生了错误;还有就是一些公共的方法也有可能带来bug,这时我们可以找到这个方法直接运行一下;当然,还有一个好技巧——请教经验丰富的同事。

时间: 2024-12-16 05:10:43

webMethods中的debug的相关文章

在Intellij IDEA中使用Debug

Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码. 所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容: 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.智能步入 六.断点条件设置 七.多线程调试 八.回退断点 九.中断Debug 十.附:JRebel激活 一.Debug开篇 首先

VS中的Debug 和 Release 编译方式的本质区别

VS中的Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. Debug 和 Release 的真正秘密,在于一组编译选项.下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论) 以下参数均是在project

Intellij IDEA中使用Debug

Intellij IDEA中使用Debug Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码. 所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容: 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.智能步入 六.断点条件设置 七.多线程调试 八.回退断点 九.中断Debug 十.附

雪泥鸿爪-教学中的debug(9)

题目:http://125.221.232.254/JudgeOnline/problem.php?id=1008 1008: 排序(用链表实现) 时间限制: 20 Sec  内存限制: 128 MB提交: 885  解决: 474[提交][状态][讨论版] [Edit] [TestData] 题目描述 将一个杂乱无序的整数序列,按照从小到大的顺序排列并输出. 用第二章的相关知识实现,即先初始化一个空的单链表,然后每读入一个数据,将该数据存入结点并插入单链表,当然,插入时要从头结点开始向后(或从

eclipse中的debug的用法

最基本的操作是: 1.首先在一个java文件中设断点,然后debug as-->open debug Dialog,然后在对话框中选类后--> Run 当程序走到断点处就会转到debug视图下. 2.F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6是step over, 也就是执行本行代码,跳到下一行, 3.F7是跳出函数 4.F8是执行到最后. 1.Step Into (also F5) 跳入 2.Step Over (also F6) 跳过 3.Step

webMethods中对EDI的转换与应用

webMethods针对edi做的功能是很完善的,is里面单独有一个wmedi的包,里面有各种对于edi数据操作的方法,包括格式转换,envelop的添加等. edi格式的转换主要有三种类型:edi/UNEDIFACT的解析和转换,xml到edi的转换,FlatFile的解析和转换. 1.edi/UNEDIFACT:将edi解析成doc,映射到自己定义的DB的doc,将DB的doc用jdbc adpater batch insert到DB.再从DB中拿出来db的doc list,映射到edi的d

webMethods中的document格式——Dictionary

webmethods中有一种独特的数据格式是document.这种数据格式类似于xml,各个不同的位置代表的意义由用户自己定义. document与xml大部分类似,在我个人看来比xml好的一点在于它结合了webMethods的图形化特点,可以对document进行鼠标定义和编程,通过document格式的树形结构,我们可以很轻松地找到想要的数据,然后通过鼠标连线将其赋给另外一个值,或者对其进行编辑和其他的操作. 与document密切相关的文件类型还有两种,一种是schema,还有一种则是Di

【技巧】Java工程中的Debug信息分级输出接口及部署模式

也许本文的标题你们没咋看懂.但是,本文将带大家领略输出调试的威力. 灵感来源 说到灵感,其实是源于笔者在修复服务器的ssh故障时的一个发现. 这个学期初,同袍(容我来一波广告产品页面,同袍官网)原服务器出现硬件故障,于是笔者连夜更换新服务器,然而在配置ssh的时候遇到了不明原因的连接失败.于是笔者百度了一番,发现了一些有趣的东西. 首先打开ssh的配置文件 sudo nano /etc/ssh/sshd_config 我们可以发现里面有这么几行 # Logging LogLevel DEBUG3

ZT:Intellij IDEA中使用Debug调试详解

防止原链接https://www.linuxidc.com/Linux/2017-09/146772.htm删除,自己备份下: Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码. 所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容: 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.