首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Clarion中是否存在异常处理?

在Clarion中是否存在异常处理?
EN

Stack Overflow用户
提问于 2012-09-27 16:40:32
回答 1查看 798关注 0票数 1

Clarion 8提供了什么异常处理吗?我知道截至克拉里翁5号,没有人支持类似try / catch之类的东西,但那是在近10年前发布的。我似乎找不到任何关于如何从C6中的异常恢复到C8的信息,除非我使用的是Clarion# (又名Clarion.NET),而我不是。如果绝对没有类似于try / catch的东西,那么在抛出异常时,是否有任何技巧或黑客可以用来避免程序崩溃,即使异常没有得到处理?

如果有帮助,我使用的是8.0.0.8778版本。

编辑1:

下面是一些基本程序的示例代码,这些代码应该说明特性PROP:LastChanceHook,但是,我无法让它工作。当我运行这个程序时,我看到了第一个消息"Start",但是什么也没发生。我尝试从Hook返回0或1,但这也没有什么区别。每次我运行这个程序时,我都必须转到任务管理器上,结束这个程序的进程,因为它没有被杀死。

代码语言:javascript
复制
PROGRAM
    INCLUDE('CWEXCPT.INT'), ONCE
    MAP
        Hook(*ICWExceptionInfo), LONG
        Test(LONG,LONG)
    END
    CODE
        MESSAGE('[Sample] Start')
        SYSTEM{PROP:LastChanceHook} = ADDRESS(Hook)
        Test(10, 0) ! Intentionally causes an exception
        MESSAGE('[Sample] After Test')
        RETURN ! Tried removing this, no difference

Hook PROCEDURE(*ICWExceptionInfo info)
    CODE
        MESSAGE('[Sample] Start Hook')
        IF info &= NULL THEN RETURN 0 END
        Message('An exception!')
        RETURN 1 ! 0 = don't kill, anything > 0 = tell RTL to kill the thread

Test PROCEDURE (LONG a, LONG b)
    CODE
        a %= b
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-27 23:09:17

是的,看看道具:帮助中的LastChanceHook。它可以提供足够的功能来满足您的需要。

在其他情况下,此链接上的信息也可能有用:http://clarionsharp.com/blog/tracking-down-those-pesky-gpfs/

在下一次C8的公开构建中(目前是2012年9月27日),该异常显示上的按钮(如上面的链接所示)可以进行一些定制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12626159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档