Delphi中的C#/ Java“Try/Finally/Catch”等效构造

在Delphi中,你怎么用try,finally,catch?一个Java / C#等效的东西看起来像:
try {
    // Open DB connection,start transaction
} catch (Exception e) {
    // Roll back DB transaction
} finally {
    // Close DB connection,commit transaction
}

如果你在Delphi中尝试这个,你可以使用try / finally或try / except;但从来没有三个在一起。我想要的代码如下(不编译):

try
    // Open DB connection,start transaction
except on e: Exception do
begin
    // Roll back transaction
end
finally // Compiler error: expected "END" not "finally"
begin
    // Commit transaction
end

解决方法

在Delphi中,您可以使用以下模式:
// initialize / allocate resource (create objects etc.)
...
try
  try
    // use resource
    ...
  except
    // handle exception
    ...
  end;
finally
  // free resource / cleanup
  ...
end

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...