gpt4 book ai didi

delphi - 您如何命名和组织您的异常(exception)情况?

转载 作者:行者123 更新时间:2023-12-03 14:52:31 26 4
gpt4 key购买 nike

当引入新的异常类型时,我总是不确定如何正确地做到这一点。有共同约定吗?你怎么做呢?

我对您组织它们的范围感兴趣(将它们保留在它们所使用的单元中?在组件级别有一个单元?包级别?应用程序?)

这也会影响命名。您包含多少上下文?是让它们非常具体(如 EPersonIDNotFoundError)还是尝试使它们可重用(如 ENotFoundError)更好?

那么后缀“Error”呢?我什么时候应该添加它,什么时候应该保留它?我看不到逻辑,例如在Classes.pas中:

  EWriteError = class(EFilerError);
EClassNotFound = class(EFilerError);
EResNotFound = class(Exception);

最佳答案

我所知道的唯一真正的约定是在它们前面加上E。过去我并没有真正考虑过它,但现在我想起来,在我看来,ErrorException都常用作后缀。如果你混合使用它们,我会说Exception与意外出错的情况有关,例如连接断开或文件无法读取,而错误更多地与错误相关输入,例如需要一个数字,但有人输入了文本。

VCL 似乎也遵循某些约定,但似乎只有在没有后缀就不清楚和出错的情况下才添加后缀,例如

EConvertError、EMathError、EVariantError

对比

EAccessViolation、EInvalidPointer、EZeroDivide

后者描述错误本身,其中第一个列表需要后缀来指示某个进程或实体中的错误。

这些例子可以在SysUtils中找到,也许你可以看一下,因为它包含了很多异常类以及更多异常的基类。其中很少以 Exception 结尾,除了一些您确实希望永远不会遇到的非常具体的错误,例如 EHeapException 和 ESafecallException。

关于delphi - 您如何命名和组织您的异常(exception)情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8092773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com