I don't know what Thaddy is talking about, but InnerException and RaiseOuterException() do not exist in FreePascal at this time, nor do any equivalents that I'm aware of.
Well, the combination of
specified exceptions and
raise inside of the except part does exactly that....The only thing that is NOT -easlily - possible with this construct as opposed to dynamic languages is to go back to the original.
RaiseInnerException equals a named exception.
IOW you can promote exceptions, but not demote them.
But RaiseouterException is simply raise from inside an except block. Clear?
This is not rocket science. Quite surprised - and with due respect - you did not grasp that.