Hi, 1) I have a code like that:
procedure TghSQLConnector.Connect; begin try FLib.Connect; except on E: Exception do DoOnException(E); end; end; https://github.com/mdbs99/Greyhound/blob/0.1.8/src/ghsql.pas#L1565 2) DoOnException was implemented so: procedure TghSQLHandler.DoOnException(E: Exception); begin if Assigned(FOnException) then FOnException(Self, E) else raise E; end; https://github.com/mdbs99/Greyhound/blob/0.1.8/src/ghsql.pas#L443 So, as you see, if occurs a Exception the code checks if the event (OnException) was setted. If yes, call user implementation; if no, call raise E; It works... but not when I uses in FPCUnit tests. See a simple test (this works): procedure TghSQLConnectorTest.TestOnException; begin // catch FConn.OnException := @DoOnException; FConn.Script.Text := 'foo'; FConn.Execute; end; https://github.com/mdbs99/Greyhound/blob/0.1.8/test/ghsqltest.pas#L246 The code DoOnException is: procedure TghSQLTest.DoOnException(Sender: TObject; E: Exception); begin AssertTrue(Assigned(E)); end; https://github.com/mdbs99/Greyhound/blob/0.1.8/test/ghsqltest.pas#L141 So, if I change the test like bellow... BUM! SIGSEGV!! procedure TghSQLConnectorTest.TestOnException; begin // removed >>> FConn.OnException := @DoOnException; FConn.Script.Text := 'foo'; FConn.Execute; end; The ERROR is: [Content] Project test raised exception class 'External: SIGSEGV'. At address 40B758 Can you explain this? Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal