2013-02-16 1 views
1

Когда я продлить класс Exception:Продление Исключение: удалить сообщение "неперехваченным XXXX исключение с сообщением"

CustomException extends Exception(){} 

throw new CustomException("Houston we have a problem",1); 

В ошибки:

SCREAM: Error suppression ignored for 
Uncaught exception 'CustomException' with message 'Houston we have a problem' in C:\wamp\www\index.php on line 5 
CustomException: Houston we have a problem in C:\wamp\www\index on line 5 

Я хочу только сообщение CustomException:

CustomException: Houston we have a problem in C:\wamp\www\index on line 5 

Возможно ли это? Это проблема xdebug? Спасибо.

+0

Вы забыли представить свой [testcase] (http://sscce.org). –

+0

@LightnessRacesinOrbit отредактирован. –

ответ

3

Это вариант XDebug. В вашем php.ini вы должны xdebug.scream=1 Чтобы отключить это, установите в xdebug.scream=0

Крик переопределяет оператор @ «заткнись», так что вы должны отключить его, чтобы остановить это происходит. Не забудьте перезагрузить сервер, чтобы изменения вступили в силу.

+0

Там вы идете. :) –

+0

Я отключил крик и весь компонент xdebug, он удаляет SCREAM, но все равно сообщают о двойной ошибке: исключить исключение «CustomException» с сообщением «Хьюстон у нас есть проблема» в C: \ wamp \ www \ index.php on line 5 CustomException: Хьюстон у нас есть проблема в C: \ wamp \ www \ index в строке 5 –

+1

Затем вам нужно отключить отчет об ошибках. В php.ini установите 'display_errors = off'. Для решения времени выполнения вы можете установить' error_reporting (0); ' – Stuart

0

Вы должны поймать исключение с помощью блока try-catch. В противном случае он сообщит об исключении исключения.

Например:

try { 
    methodThatCanThrowAnException(); // used since I don't know the method you are trying to call 
} 
catch (CustomException $e) { 
    echo $e->getMessage(); 
} 
+0

Ум, может быть, OP не хочет его поймать. Они хотят, чтобы PHP выводил сообщение об исключенном исключении разумным способом без SCREAMing. –

+1

@LightnessRacesinOrbit Они спрашивают о том, что сообщение не удалось, поэтому я предоставил решение, чтобы поймать его. Как это не отвечает на вопрос? Если они хотят сделать что-то еще, я могу дать другой ответ. –

+0

Прочтите вопрос. –