COM exeption

Panchous

Павел
COM exeption

Как можно получить полное описание сгенерированного COM-объектом исключения:
PHP:
try {
     $mycom->Do();
     }
catch (com_exception $e) {
     print "COM exeption: ".$e ."\n";                  
}
Выводит что-то типа:
COM exeption: Object#4

PHP 5.0.2
 

Panchous

Павел
Выдает следующее:
PHP:
COM exeption: Object id #4
object(com_exception)#4 (6) {
  ["message:protected"]=>
  string(95) "<b>Source:</b> ArchiveAccess.Requester.1<br/><b>Description:</b> Ошибка при передаче параметров"
  ["string:private"]=>
  string(0) ""
  ["code:protected"]=>
  int(-2147352567)
  ["file:protected"]=>
  string(27) "...my.php"
  ["line:protected"]=>
  int(43)
  ["trace:private"]=>
  array(1) {
    [0]=>
    array(4) {
      ["file"]=>
      string(27) "...my.php"
      ["line"]=>
      int(12)
      ["function"]=>
      string(12) "showResponse"
      ["args"]=>
      array(1) {
        [0]=>
        object(com)#2 (0) {
        }
      }
    }
  }
}
А как получить, собственно, сообщение?

-~{}~ 01.11.04 16:29:

и на php.net ничего не нашел...
может кто знает?
 

Profic

just Profic (PHP5 BetaTeam)
try {
$mycom->Do();
}
catch (com_exception $e) {
print "COM exeption: ". $e->__toString () ."\n";
}

-~{}~ 01.11.04 18:53:

и на php.net ничего не нашел
Не там искал. Это все есть в документации. [m]migration5.oop[/m]
 

Panchous

Павел
Спасибо!
Спасло:
Код:
$e->getMessage()
-~{}~ 03.11.04 08:45:

Вот только само сообщение выглядит примерно так:

<b>Source:</b> MyComLib.MyComClass ........
<b>Description:</b> ошибка такая-то...


А нет ли возможности получить имеено описание (только description без source) ?

Пока не придумал ничего лучше, чем парсить полученное сообщение и вытягивать description оттуда...
 

Profic

just Profic (PHP5 BetaTeam)
Use source, Luke! (с) Тони :)
В общем так его генерирует com_exception, поэтому либо хакать исходники, либо юзать "All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception." (с) [m]com#com.exceptions[/m]
 
Сверху