2015-02-01 2 views
0

У меня есть сценарий «test.php», который выполняется в PHP CLI, используя команду exec. В этом файле я использую Исключение для некоторых особых случаев, чтобы поймать их вне CLI и остановить выполнение. К сожалению, исключение не выбрасывается, и я не знаю почему. Я не могу использовать команду выхода(), так что мне нужно знать, что есть проблема со следующим сценариемPHP exec исключение исключения не работает

index.php 

$cliObj = new CliClass('test.php'); 
$cliObj->run(); 
$cliObj->setOutputFile('../test.txt'); 

test.php 
if ($x == 0) throw new \Exception("TEST"); 

Я знаю, что переменные $ х 0, но я исключение не выкидываются.

10x!

+0

Привет @ Yair.R. Я пишу неправильный пример, потому что я использую \ Exception – OsomA

+0

Где источник 'CliClass'? Как это выводится на test.txt? Вы захватываете как «STDERR», так и «STDIO»? – Tom

+0

CliClass находится на том же уровне, что и index.php, и работает, потому что запускается exec. Моя команда выглядит так красиво -n 19 php -f test.php 2> & 1> ../test.text. – OsomA

ответ

1

Код должен выглядеть так:

if ($x == 0) { 
    throw new \Exception("TEST"); 
} 
+0

Я пробовал это, но все еще не работал :( – OsomA

+0

Вы уверены, что $ x is 0? попробуйте следующее: if ($ x == 0) { throw new \ Исключение («0») } throw new \ Exception ("it is not 0"); –

+0

Как я могу исключить исключение в index.php? Теперь он вызывается, мой плохой. В файле index.php я попытался поставить код внутри try и catch, потому что сообщение, которое нужно отобразить в index.php – OsomA

Смежные вопросы