Показать сообщение отдельно
Старый 18.09.2003, 12:24   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 868 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
try & ttsbegin
Для такого кода
PHP код:
    try
    {
        
ttsbegin;

        try
        {
            
ttsbegin;
            
select forupdate aa where aa.== 9;
            
aa.1;
            
aa.update();

            
info("До error");
            throw 
Exception::error;

            
info("После error");
            
ttscommit;
        }
        catch (
Exception::Error)
        {
            
info("catch 1");
        }

        
info("После catch");

        
select forupdate aa where aa.== 9;
        
aa.2;
        
aa.update();

        
ttscommit;

        
info("После ttscommit");
    }
    catch (
Exception::Error)
    {
        
info("catch 2");
    }

    
info("После всего"); 
получается следущее
До error
catch 2
После всего


Т.е. управление передается в catch, который следует за блоком try, в котором была открыта первая транзакция.