免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7131 | 回复: 21
打印 上一主题 下一主题

monmsg捕获异常的疑问,在线等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-11 11:33 |只看该作者 |倒序浏览
我有一个rpg文件,在执行时,如果有异常,不错处理的情况下应当是系统自动弹出系统messag,显示出异常,并且程序终端。
我想做到的效果是如果出现异常,忽略掉,继续执行程序。
看到一些资料说在cl中加monmsg就可以,所以我写了一个简单的cl
PGM                                   
MONMSG MSGID(CPF0000) exec(goto aa)
CALL PGM(SLTST/CUSPOPR)         
aa;call pgm(sltst/othersys)      
ENDPGM   

可是现在的效果是
程序执行-》发现异常-》系统自动弹出异常消息-》跳到aa中执行新程序

我想要的效果是
程序执行-》发现异常-》跳到aa中执行新程序
就是不要系统弹出异常消息。   应当怎么做?

论坛徽章:
0
2 [报告]
发表于 2009-12-11 14:18 |只看该作者
自己頂一下吧,想知道出現異常時錯誤顯示是否可以隱藏

论坛徽章:
0
3 [报告]
发表于 2009-12-11 14:23 |只看该作者
我也想知道解决方法,期望高手解答!!!!!

论坛徽章:
0
4 [报告]
发表于 2009-12-11 14:25 |只看该作者
high hand(guru) 在哪里???
赶快出来解答

论坛徽章:
0
5 [报告]
发表于 2009-12-11 14:27 |只看该作者
咕嚕 周五都休息

论坛徽章:
0
6 [报告]
发表于 2009-12-11 17:25 |只看该作者
要下班了,还是没有答案呀

论坛徽章:
0
7 [报告]
发表于 2009-12-11 21:38 |只看该作者
原帖由 adam_0_0_0 于 2009-12-11 11:33 发表
我有一个rpg文件,在执行时,如果有异常,不错处理的情况下应当是系统自动弹出系统messag,显示出异常,并且程序终端。
我想做到的效果是如果出现异常,忽略掉,继续执行程序。
看到一些资料说在cl中加monmsg ...


程序执行-》发现异常-》跳到aa中执行新程序

基本思路:

             PGM                                 

             MONMSG     MSGID(CPF0000) EXEC(DO)  
        /*发现异常 : 执行你想执行的程序然后执行下面的命令退出程序*/
            goto   pgmend   
          enddo

       /*没有发现异常 执行程序*/
      
pgmend:                                          
            
             ENDPGM

[ 本帖最后由 huangxkst 于 2009-12-11 21:42 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-12-12 00:15 |只看该作者

回复 #1 adam_0_0_0 的帖子

I am confused with your question:
The message that system return you should turn down your job, how can you still proceed your aa logical?
So please clarify your message first.

For CMD MONMSG:

Action A
MONMSG(CPF0000) EXEC(GO TO aa)
MONMSG(CPF0001)
CALL PGM(C1)

aa:  CALL PGM(C2)

------------------------
if CPF0000 catched, then go to logical aa to CALL PGM(C2)
if CPF0001 catched, then do nothing to perform CALL PGM(C1) according to program original sequence
if CPF0003 catched, and this exception msg you not defined before to catch, then system break down.
so in order to avoid system break down, you can define exception msg like
MONMSG(CPF0000 XXX0000) sorry that I forget the exact msg name, which means catch all exception msg,
then write a simple logical to feed back the error, such as 'unexpected error occur'

论坛徽章:
0
9 [报告]
发表于 2009-12-14 08:54 |只看该作者
原帖由 huangxkst 于 2009-12-11 21:38 发表


程序执行-》发现异常-》跳到aa中执行新程序

基本思路:

             PGM                                 

             MONMSG     MSGID(CPF0000) EXEC(DO)  
        /*发现异常 : 执行你想执 ...


感谢你的回复。不过还是没有解决弹出错误消息的问题。 我在rpg中有意制造了一个往pf文件插数据时,出现重复数据的情况,根据你的这个思路,当出现重复插入主键相同数据的时候,会弹出“(C G S D F) CUSPOPR 908 CPRRSPF が重複レコードを書き出そうとした ”错误,我不想要这种错误提示。

论坛徽章:
0
10 [报告]
发表于 2009-12-14 08:55 |只看该作者
原帖由 janggs 于 2009-12-12 00:15 发表
I am confused with your question:
The message that system return you should turn down your job, how can you still proceed your aa logical?
So please clarify your message first.

For CMD MONMS ...


感谢你的回复,发生错误时,不一定都要关闭程序吧。我可以在发生异常的时候,做其他的处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP