On Sat, Sep 14, 2013 at 10:21 PM, Marcos Douglas <m...@delfire.net> wrote: > 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?
I forgot. I'm using Lazarus 1.1 r42461 FPC 2.6.2 i386-win32-win32/win64 I want to know if there is a problem in FPCUnit to catch some exceptions. That's all. Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal