Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Исключения

Сообщения:  [1-10]    [11-20]  [21-24] 

 
 автор: psychomc   (07.04.2013 в 19:35)   письмо автору
 
   для: MHz   (07.04.2013 в 19:02)
 

так может все-таки подкрепите свои слова примером?

  Ответить  
 
 автор: MHz   (07.04.2013 в 19:02)   письмо автору
 
   для: psychomc   (07.04.2013 в 13:32)
 

Всегда, когда обработка исключения не ограничивается выводом сообщения об ошибке и логировании.

  Ответить  
 
 автор: psychomc   (07.04.2013 в 13:32)   письмо автору
 
   для: MHz   (07.04.2013 в 13:16)
 

это не аргумент. приведите пример, когда удобнее использовать try/catch

  Ответить  
 
 автор: psychomc   (07.04.2013 в 13:31)   письмо автору
 
   для: MHz   (07.04.2013 в 13:15)
 

если что, это всего лишь был пример, который показывает, что там где вы выбрасываете исключение, ничто не мешает манипулировать объектом. главное это делать до выброса.

  Ответить  
 
 автор: MHz   (07.04.2013 в 13:16)   письмо автору
 
   для: psychomc   (07.04.2013 в 12:53)
 

В общем сомнительное это преимущество все в один обработчик посылать)

  Ответить  
 
 автор: MHz   (07.04.2013 в 13:15)   письмо автору
 
   для: psychomc   (07.04.2013 в 12:53)
 

И это мне нужно будет везде прописывать вот такие конструкции, а не обрабатывать их как вы сами сказали одинаково для каждого типа исключения?
Да и зачем здесь мне исключение? Чтобы вывести file not exists? проще тогда выбрасывать стандартное exception и не париться.

  Ответить  
 
 автор: psychomc   (07.04.2013 в 12:53)   письмо автору
 
   для: 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");
         }
    }
}


не?

  Ответить  
 
 автор: MHz   (07.04.2013 в 12:49)   письмо автору
 
   для: psychomc   (07.04.2013 в 12:38)
 

Как это не нужно, а если мне например нужно в случае выброса исключения отменить sql-транзакцию?
Передавать $this, это вы предлагаете описывать в нем каждый мой класс, который он должен уметь обрабатывать?

  Ответить  
 
 автор: psychomc   (07.04.2013 в 12:38)   письмо автору
 
   для: MHz   (07.04.2013 в 12:33)
 

вообще-то есть. в Exception есть встроенный метод getTrace
*конкретно к объекту нет, да и не нужно. но если уж вдруг понадобится, ничто не мешает дочерние классы написать таким образом, чтобы они принимали объект и при выбросе исключения скармливать им $this. хотел бы я посмотреть на ситуацию, когда после выброса исключения нужно еще что-то делать в контексте класса, который его выбросил

  Ответить  
 
 автор: MHz   (07.04.2013 в 12:33)   письмо автору
 
   для: psychomc   (07.04.2013 в 10:55)
 

В первом случае у вас в момент когда вы поймали исключение, уже нет доступа к классу который его выбросил.
Зачем добиваться гибкости в самом классе наследнике исключения, этот класс не знает ситуации когда возникло исключение и доступа у него к классу который выбросил это исключение тоже нет.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-24] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования