Я разрабатываю собственный веб-сайт, который вычисляет определенные значения. Мне нужно показать пользователям, что ошибки ушли от вычисления простым сообщением, а не ошибкой PHP. Я также изучаю исключение бросания в PHP Является ли это хорошим способом перебросить исключение в этом случае?Re-throw исключение в PHP
0
A
ответ
1
Да, это возможно, и это хороший способ.
Вот пример из W3schools.com объяснил
<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = $this->getMessage().' is not a valid E-Mail address.';
return $errorMsg;
}
}
$email = "[email protected]";
try
{
try
{
//check for "example" in mail address
if(strpos($email, "example") !== FALSE)
{
//throw exception if email is not valid
throw new Exception($email);
}
}
catch(Exception $e)
{
//re-throw exception
throw new customException($email);
}
}
catch (customException $e)
{
//display custom message
echo $e->errorMessage();
}
?>
Пример: Код выше тестов, если электронная почта-адрес содержит строку «пример» в нем, если это произойдет, исключение повторно throw:
- Класс customException() создается как расширение старого класса исключений. Таким образом, он наследует все методы и свойства из старого класса исключений
- Создана функция errorMessage(). Эта функция возвращает сообщение об ошибке, если адрес электронной почты недействителен.
- В переменной $ email задана строка, которая является допустимым адресом электронной почты, но содержит строку «пример»
- Блок «try» содержит еще один блок «try», чтобы сделать возможным повторное выброс исключения
- Исключение инициируется, так как электронное письмо содержит строку «пример»
- Блок «catch» ловит исключение и повторно выбрасывает "customException"
- "customException" обнаружено и отображается сообщение об ошибке
Если исключение не попало в его текущий блок «try», он будет искать блок catch на «более высоких уровнях».
+3
ничего не следует из W3schools.com –
Смежные вопросы
- 1. Исключение PHP rethrow из конструктора
- 2. Resharper Исключение Rethrow возможно предназначенный
- 3. Rethrow исключение в попытки блока C#
- 4. Исключение Rethrow CXF в camel with onException
- 5. Почему Rethrow поймали исключение на окончательно блокировать
- 6. Поймать, ручка, а затем исключение Rethrow?
- 7. как исключение rethrow заканчивается внешним catch?
- 8. Java Multi-Стопор/Rethrow
- 9. Поймайте абстрактное исключение и Rethrow в конкретном типе в Java
- 10. Некорректное StackTrace по Rethrow
- 11. C# rethrow исключение: как получить стек исключений в среде IDE?
- 12. Rethrow, как TargetInvocationException ошибка
- 13. Rethrow проверяемого исключения из Runnable
- 14. Moq ошибка Rethrow передается в программу установки
- 15. Catch - rethrow in Tibco
- 16. Observable.Publish с поведением rethrow
- 17. Rethrow UncaughtExceptionHandler Exception после регистрации в нем
- 18. Refactor к Rethrow поглотили исключения
- 19. Разница между catch и catch и rethrow exception в java?
- 20. Исключение исключений в PHP?
- 21. Исключение обработки в PHP
- 22. PHP Неустранимая ошибка: исключение «исключение»
- 23. Ошибки класс Rethrow Дуриана (в) завернуть метод вызывает ошибку компилятора
- 24. PHP в TOMCAT 6 - Исключение
- 25. PHP «Исключение не найдено»
- 26. PHP взаимное исключение (mutex)
- 27. Исключение потока исключений PHP
- 28. PDO PHP Необлученное исключение
- 29. PHP Исключение не поймано
- 30. Исключение php не работает
надлежащее тестирование перед рукой = нет ошибок :-), конечно, вы можете просто зарегистрировать их и не отображать. или использовать собственный обработчик ошибок. –
Если вы пытаетесь найти в google, вы можете получить некоторую ценную информацию. – Pitchinnate
Вы прочитали [руководство] (http://php.net/manual/en/language.exceptions.php)? – Jon