delphi - 为什么异常后执行会跳转到proc的末尾?

标签 delphi exception

当调试任何过程/函数/方法中的某些代码时发生未处理的异常时,调试器会停在那里并显示消息。

如果我现在继续逐步调试,执行会直接从产生异常的行跳转到当前过程的末尾(如果没有 finally block )。

继续当前程序的下一行不是同样好吗?

为什么跳到proc的末尾继续调用过程? 这是设计使然还是有充分的理由?

最佳答案

异常是意想不到的情况,这就是处理停止的原因。

跳转到程序末尾是一个不可见的 finally 语句,用于释放任何本地“分配的”内存,如字符串、接口(interface)、记录等。

如果你想处理一个异常,你必须用 try .. except 语句封装可以给出异常的调用,并使用“on”子句来只处理你想处理的特定异常。

在 except 中,您可以检查调试器中的变量,如果需要,您可以在代码中再次引发异常。

关于delphi - 为什么异常后执行会跳转到proc的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/601674/

相关文章:

Android加载一些数据

php - 扩展 Phalcon\Db\Adapter\Pdo\Mysql 时连接过多

delphi - 在快速报告6中禁用最小化

delphi - delphi中的二维Safearray?

delphi - 如何自动将构建日期转换为代码可见的常量?

python - 如何确定定义特定异常类的模块

java - Spring JPA - 处理 DB/Repo 异常

c# - awesomium.dll 在 XP 而非 Windows 7 上导致我的 WPF 应用程序崩溃

delphi - Pascal: 变量 i : 1..10;

Delphi - TFDQuery - 如何仅为一条记录设置 updateStatus usUnmodified 而不恢复它?