你怎么知道方法异常代码是什么?

问题描述 投票:0回答:1

我过去通常没有使用过异常(我禁用它们),但是对于 C++Builder,有一些配置可以使用它。所以我会接受它,但你怎么知道例外是什么,所以你知道你想用它做什么?

返回错误代码或 NULL 或 FALSE 的旧方法很容易了解代码,因为它们通常用函数记录代码,但我发现除了例外情况,实际上没有关于它们的信息记录在方法/命令中。

例如

TFDSQLiteSecurity.SetPassword()
函数,我怎么知道有什么异常(返回)代码来响应它们?我没有看到他们列出?

delphi c++builder firedac
1个回答
2
投票

除非有记录,否则知道抛出什么type异常的唯一方法是在运行时实际catch它并询问它的类型。或者查看库源代码(如果可用)。

关于异常的事情是你并不总是需要知道它们是什么,只需要知道它们被抛出完全.

大多数异常都派生自公共基类(

Sysutils::Exception
std::exception
等),因此通常只通过其基类捕获异常就足够了,而不是特定的派生类。仅当您想以不同于其他异常的方式处理 specific 异常,或者如果您需要访问特定于异常的详细信息(例如用于日志记录目的)时,您才需要知道异常的特定 type

在任何情况下,在您的特定示例中,所有 FireDAC 异常都派生自

EFDException
类,该类具有
FDCode
属性,其中包含 FireDAC 错误代码。而DBMS特定的FireDAC异常是从
EFDDBEngineException
派生的,它有几个描述数据库错误的属性,包括
ErrorCode
,失败的
SQL
和它的
Params

并非所有异常都按方法记录。有时错误文档更加集中。例如,有关 FireDAC 异常的更多详细信息,请参阅Handling Errors (FireDAC) 文档。

© www.soinside.com 2019 - 2024. All rights reserved.