|
|
|
|
|
для: MHz
(07.04.2013 в 19:02)
| | так может все-таки подкрепите свои слова примером? | |
|
|
|
|
|
|
|
для: psychomc
(07.04.2013 в 13:32)
| | Всегда, когда обработка исключения не ограничивается выводом сообщения об ошибке и логировании. | |
|
|
|
|
|
|
|
для: MHz
(07.04.2013 в 13:16)
| | это не аргумент. приведите пример, когда удобнее использовать try/catch | |
|
|
|
|
|
|
|
для: MHz
(07.04.2013 в 13:15)
| | если что, это всего лишь был пример, который показывает, что там где вы выбрасываете исключение, ничто не мешает манипулировать объектом. главное это делать до выброса. | |
|
|
|
|
|
|
|
для: psychomc
(07.04.2013 в 12:53)
| | В общем сомнительное это преимущество все в один обработчик посылать) | |
|
|
|
|
|
|
|
для: psychomc
(07.04.2013 в 12:53)
| | И это мне нужно будет везде прописывать вот такие конструкции, а не обрабатывать их как вы сами сказали одинаково для каждого типа исключения?
Да и зачем здесь мне исключение? Чтобы вывести file not exists? проще тогда выбрасывать стандартное exception и не париться. | |
|
|
|
|
|
|
|
для: MHz
(07.04.2013 в 12:49)
| |
<?php
// пример
class test1
{
public function __construct() {
// ......
if (!file_exists($path)) {
// а вот тут можно отменить транзакцию
// и сделать всё что угодно ДО выброса исключения
// .....
throw new my_exception1("File " . $path ." is not exists");
}
}
}
|
не? | |
|
|
|
|
|
|
|
для: psychomc
(07.04.2013 в 12:38)
| | Как это не нужно, а если мне например нужно в случае выброса исключения отменить sql-транзакцию?
Передавать $this, это вы предлагаете описывать в нем каждый мой класс, который он должен уметь обрабатывать? | |
|
|
|
|
|
|
|
для: MHz
(07.04.2013 в 12:33)
| | вообще-то есть. в Exception есть встроенный метод getTrace
*конкретно к объекту нет, да и не нужно. но если уж вдруг понадобится, ничто не мешает дочерние классы написать таким образом, чтобы они принимали объект и при выбросе исключения скармливать им $this. хотел бы я посмотреть на ситуацию, когда после выброса исключения нужно еще что-то делать в контексте класса, который его выбросил | |
|
|
|
|
|
|
|
для: psychomc
(07.04.2013 в 10:55)
| | В первом случае у вас в момент когда вы поймали исключение, уже нет доступа к классу который его выбросил.
Зачем добиваться гибкости в самом классе наследнике исключения, этот класс не знает ситуации когда возникло исключение и доступа у него к классу который выбросил это исключение тоже нет. | |
|
|
|
|