乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 6

[编程交流] 错误定位

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:21:01 | 显示全部楼层 |阅读模式
好啊
 
所以我在这里看到了很多关于错误处理程序的不同讨论。
 
我已经和阿斯米、大卫·贝瑟尔、卡布等谈过了。。。
 
有人说要使用错误处理程序,如:
 
  1. (defun *error* (msg)
  2.    ....
  3. )

 
并定位主函数中的*错误*,
 
其他人使用*error*函数重置系统变量:
 
  1. (*error* "") ; reset variables

 
一些人不同意,并表示要格式化处理程序:
 
  1. (setq *error* (lambda (e)
  2.    (cond....
  3. )

 
哪种方法正确?!
 
干杯
 
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 15:39:07 | 显示全部楼层
这取决于目标。我在这个问题上的理念很简单:“恢复原状”。但这只是因为我不知道我的工作计划在哪里。
 
如果特定用户需要遵循的理念可能不同:“按照标准恢复”。
 
我不相信有权利去禁用一个不知名的家伙BLIPMODE,他可能会喜欢它。这就是为什么我写局部函数*error*,它只与我的程序相关。我从来没有写过处理错误的标准条款,也没有印章,每个处理错误都是不同的。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:49:35 | 显示全部楼层
很好,ASMI,
 
设置为以前的设置,而不是重置为标准变量集。
 
但是,使用将处理程序定义为局部函数的方法,是否必须在主函数中定位*错误*?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 15:55:10 | 显示全部楼层
李,
 
我不认为有一个正确的答案是如何定义一个错误(setq vs defun)
 
我确实认为,在错误情况下,它应该:
[列表]
  • 如果激活,则取消命令
  • 适当时显示有意义的消息
  • 撤消程序对数据库所做的所有更改
  • 调用重置模式子例程
    重置子程序应:
    [列表]
  • 将系统变量和模式重置为其原始状态
  • 结束撤消组
  • 还原*错误*处理程序
    附件是1997年计算机日的讨论。这大概是R13发布的时候,我们中的很多人仍然在使用R12。
     
    我读了一些有趣的书,尽管其中有些内容有点冗长-大卫
    清洁。拉链
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 16:10:23 | 显示全部楼层
    谢谢你的意见大卫-我看到这是一个很大的讨论问题-特别是根据你的附件长度!
     
    我发布这条帖子的唯一原因是为了能把事情做好。
     
    我不想回答人们的问题,也不想发布写得很糟糕/不正确的例程。所以我想从这里有经验的人那里学习,了解如何正确格式化例程,比如错误处理程序。
     
    在阅读了您的回复后,我意识到似乎没有一种标准的方法来分配错误处理程序,每个人似乎都有自己的方法。
     
    我看了David的错误模板——注意它包括函数重置的所有方面——包括“撤销组”和一系列系统变量。
     
    在我的错误例程中,我通常将error定义为一个子函数,并收集我打算随着例程的进行而更改的sysvars值最终,事情发展到了最后。
     
    我想让事情简单明了,但我想把事情做好。
    回复

    使用道具 举报

    26

    主题

    1495

    帖子

    20

    银币

    初露锋芒

    Rank: 3Rank: 3Rank: 3

    铜币
    118
    发表于 2022-7-6 16:17:44 | 显示全部楼层
    李,
     
    这是在这样的论坛上发布代码片段和完整程序的缺点之一。很难用一个简短的格式抓住所有的可能性。
     
    用户有责任确保有足够的备份,知道即使有最好的意图,程序员也会犯错误,这可能会毁了他们的一天。因此,这是一种“买家当心”,在证明有价值之前,不要在生产图纸上使用这些东西-大卫
    回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 16:26:28 | 显示全部楼层
     
    大卫说得好。
     
    毕竟,这里没有人试图提供恶意程序,但我们不能解释每一个结果。
    回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

    QQ|关于我们|小黑屋|乐筑天下 繁体中文

    GMT+8, 2025-3-4 19:27 , Processed in 0.490724 second(s), 77 queries .

    © 2020-2025 乐筑天下

    联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表