В Вс., 04/12/2011 в 17:26 +0100, Jesus Garcia пишет:
> 
> > So UDFs should not raise exceptions. Period. The bug is in it, not
> > in
> > Firebird.
> > 
> 
> 
> May be i don't explain well, i know the bug is in the UDF, but an
> exception not  catched in my app, would not restart my computer.

Yes, certainly. Because that app runs in outer protection ring relative
to operating system. If you add a driver (running in ring 0) and let it
throw unhandled exception, you do have to restart your computer. (If you
remember MSDOS which knew nothing about protection rings - any serious
bug in user program required computer restart.)

The only way to have absolutely save UDFs is to run them in separate
process. But I'm afraid that this will make them work much slower. 

Catching unhandled exceptions from foreign module is impossible in
almost all cases. Code invoking UDFs does catch what it can catch. To
make sure try to access wrong address in your UDF and see what happens.

BTW, in your case the best solution is to avoid UDF at all - just use
builtin power() function.



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to