Распознать ошибки PHP в ActionScript 3? - PullRequest
0 голосов
/ 08 февраля 2012

Я подключаюсь к некоторым файлам PHP в ActionScript 3 (Adobe Flex).Но когда в одном из файлов PHP есть ошибка, мой проект Flash больше не работает должным образом.

Есть ли возможность обнаружить ошибку PHP в Actionscript, чтобы я мог показать сообщение с ActionScript, что-топошло не так?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 08 февраля 2012

Зависит от ошибки. Если это неустранимая ошибка, то нет. Тем не менее, большинство ошибок, вероятно, будут перехвачены, и, следовательно, могут быть обработаны путем ответа с соответствующей ошибкой.

Посмотрите на:
http://php.net/manual/en/function.set-exception-handler.php
http://www.php.net/manual/en/function.set-error-handler.php

2 голосов
/ 08 февраля 2012

Если из-за проблемы на самом деле вызов вызывает ошибку, я полагаю, вы получите FaultEvent в AS3 вместо ResultEvent и сможете добавить слушателя для него.Если дело не в том, что он выдает ошибку, а просто в том, что он взрывается, вы можете поместить в ответ какой-то текст, указывающий, что он успешно завершен.Если у вас есть XML, возвращаемый в качестве результата, вы можете включить узел в конце обработки, который говорит что-то вроде «processingCompletedSuccess», и искать этот узел в обработчике результатов во Flex, или, аналогично, если это простой текстовый результат, вы можете добавить"success" в качестве последнего слова, затем прочитайте последнюю строку в обработчике результатов и посмотрите, указывает ли оно на успешность (удаляя его для дальнейшей обработки).

1 голос
/ 08 февраля 2012

Вы не сказали, какой тип данных вы возвращаете из "PHP-файла", поэтому я предполагаю, что это XML.

Когда я работаю с XML, я стандартизирую свой XML, чтобы следовать очень специфическому легкому формату.

<root>
  <data>
     // your data here
  </data>
  <error/>
  <message/>
</root>

И в моем php я обертываю его в попытке поймать.В блоке catch я верну ошибку внутри узла сообщения.И назначит 1 внутри узла ошибки.Таким образом, сообщение об ошибке может выглядеть следующим образом.

<root>
  <data/>
  <error>1</error>
  <message>some error from php here</messge>
</root>

Так что на стороне AS все, что мне нужно сделать, это проверить на

response.error == 1

псевдокод, но вы должны понять.

...