小弟最近研究PB8,发现它新增了一个令人激动的功能——脚本的错误捕获功能,在此简单说一说,有志同道合者可以一起探讨。

liu7537 2002-03-30 09:45:59
小弟最近研究PB8,发现它新增了一个令人激动的功能——脚本的错误捕获功能,在此简单说一说,有志同道合者可以一起探讨。
在PB8以前的版本中没有对脚本的错误捕获机制,只能是靠我们程序员自己对可能发生的错误进行判断,然后进行相应的处理,实在没有想到就只能靠systemError事件来统一处理了。在这一方面PB就落后其它的开发工具很多了。
索性sybase 意识到了这一点,在PB8中增加了这部分的功能,具体的语法结构是
try

catch

finally

end try
举个例子
integer i1,i2,i3
i1=2
i2=0
try
i3=i1/i2
i3=i3+5
catch RunTimeError er
messagebox('提示信息','程序发生运行时错误。错误是'+er.GetMessage())
end try
i3=i3+10

这样在执行到i3=i1/i2由于发生了被0除的错误,程序将略过i3=i3+5语句,
直接跳到messagebox命令,然后再执行最后一句i3=i3+10。
如果try后面的语句没有发生运行时错误,则程序不会执行messagebox命令,finally字句的意思就是无论发生错误与否,都要执行finally和end try之间的语句。
PB8的错误捕获机制还支持多层嵌套。怎么样,PB的同行们,以后我们也可以自豪地说PB也有了完善的错误捕获机制了!
(liu7537原创于2002-03-30)
...全文
75 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qsqwmy 2002-04-04
  • 打赏
  • 举报
回复
不能编译为机器码了吗?那岂不是很麻烦????
Dreamaster 2002-04-03
  • 打赏
  • 举报
回复
这种机制以前在除pb之外的其他开发工具中几乎都有。微软最新的vs.net也有
,但如果在pb中用了这样的代码,就不能编译为机器码。
qsqwmy 2002-04-03
  • 打赏
  • 举报
回复
对不起,应该是改成catch(RunTimeError er)
zc_ncepu 2002-04-02
  • 打赏
  • 举报
回复
大家有没有在PB+EAServer上用服务器端抛出错误,然后在客户端捕获的?
jimly 2002-04-02
  • 打赏
  • 举报
回复
谢谢啊
qsqwmy 2002-04-02
  • 打赏
  • 举报
回复
把catch RunTimeError er改成(catch RunTimeError er)就没有语法错误了。
rdb0508 2002-04-01
  • 打赏
  • 举报
回复
PB6里面就已经有了
liu7537 2002-04-01
  • 打赏
  • 举报
回复
PB8 + Win 2000 + SQL Server 2000
newbiegao 2002-04-01
  • 打赏
  • 举报
回复
这种错误捕获机制在JAVA.
jimly 2002-04-01
  • 打赏
  • 举报
回复
你的例子在我的机子上怎么语法错误,别的可以,好象catch那句不能用,
说说你的运行环境好吗。
咚咚咚咚咚咚 2002-03-31
  • 打赏
  • 举报
回复
的确比以前的版本好了不少
ahui_201 2002-03-31
  • 打赏
  • 举报
回复
关注!
sorrow_arrow 2002-03-31
  • 打赏
  • 举报
回复
看懂了一点点,这个玩意我还有深入研究,up
am2000 2002-03-31
  • 打赏
  • 举报
回复
继续努力.
killerdanny 2002-03-31
  • 打赏
  • 举报
回复
hehe!
liu7537 2002-03-31
  • 打赏
  • 举报
回复
TO hongerchen(快乐阿奇) 、zhanwei(詹维) :
try
catch
finally
end try
这种错误捕获机制在PB8以前的版本,包括7.0,6.5等等都没有提供,这是PB8最新提供的功能!
long5 2002-03-31
  • 打赏
  • 举报
回复
关注!
rabbitsfoot 2002-03-31
  • 打赏
  • 举报
回复
很激动吗?对我好象没什么用处啊,而且这语句在PB6里面就已经有了!
zhanwei 2002-03-31
  • 打赏
  • 举报
回复
PB6.5没有,我做梦都希望能有!
hongerchen 2002-03-31
  • 打赏
  • 举报
回复
PB6.5可以吗?我试了一下,好像不行的,提示:TRY没有定义,CATCH是违法的数据类型。

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧