Как добавить свойства в объект исключения ColdFusion - PullRequest
1 голос
/ 02 ноября 2011

Я знаю, что это может показаться очень надуманным примером, но у меня есть случай, когда в рамках улова я буду пробовать / ловить другое исключение. Тем не менее, я хотел бы включить во второй улов информацию о первом исключении. В идеале это будет выглядеть примерно так:

try {
  a = b;
}
catch ( any e ) {
  local.originalException = Duplicate(e);
  try  {
     throw "New exception!!!";
  }
  catch( any e )    {
     e.originalException = local.originalException;
     doNotification( e );
  }
}

Когда я запускаю этот маленький тест, при установке e.originalException не возникает неожиданное исключение, однако, когда я выкидываю исключение сразу после его установки, оно не является частью структуры исключения. Есть ли другой способ достичь этого? Я использую ACF 9.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

К сожалению, вы не можете "прикрепить" много дополнительной информации к исключению CF.Но вы могли бы сделать что-то подобное, чтобы обернуть одно исключение в другое ...

<cftry>
<cfset a = b>
<cfcatch>
    <cftry>
        <cfthrow message="new exception" extendedinfo="#serializeJson(cfcatch)#">
        <cfcatch>
            <cfset stOriginalExceptionData = deserializeJson(cfcatch.extendedInfo)>
            <cfdump var="#stOriginalExceptionData#">
        </cfcatch>
    </cftry>
</cfcatch>

Помогает ли вам такая техника?

0 голосов
/ 03 ноября 2011

Вы пытались дублировать объект?Поскольку согласно документации вы не можете изменять исключения cfcatch:

Изменено изменение объекта: вы не можете изменить объект, возвращенный cfcatch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...