Возбуждение исключений не являющихся потомками Exception'а

BigWindow

Новичок
Возбуждение исключений не являющихся потомками Exception'а

Все привет!

Скажите пожалуйста, можно ли возбуждать исключения не являющихся потомками Exception'а?

В книге Джорджа Шлосснейгла автор написал, что можно делать например так:

PHP:
<?php    
class AltException {};   

try {  	
   throw new AltException;  	  
} catch (Exception $e) {  	
   print "!!!";  
}    
?>
Вот собственно вопрос можно или нет? PHP5 ругается матом. Может PHP4 разрешает делать так?
 

Активист

Активист
Команда форума
Ты сам ответил на свой вопрос. Да, в PHP 4 нет try/catch.

Думай что пишешь.

>В книге Джорджа Шлосснейгла
Цитату, пожалуйста.
 

BigWindow

Новичок
Автор оригинала: Активист
Ты сам ответил на свой вопрос. Да, в PHP 4 нет try/catch.
С PHP4 не работал, потому не знал... :(

Автор оригинала: Активист
Думай что пишешь.
Стараюсь :) Но говорят, что человек не может думать больше 5% времени в сутки :confused:

Автор оригинала: Активист
Цитату, пожалуйста.
Страничка 94, 4 и 5 абзацы.

-~{}~ 28.07.08 18:25:

Выходит Джордж ошибся???
 

tony2001

TeaM PHPClub
я не знаю, ошибся он или нет, я знаю как правильно и это описано в мануале.
 

fixxxer

К.О.
Партнер клуба
в ранних бета-версиях php5 было можно. видимо книга писалась по ранней бете.
 

Lews

Новичок
А зачем делать исключение, не являющееся потомком Exception?
 

BigWindow

Новичок
Автор оригинала: Lews
А зачем делать исключение, не являющееся потомком Exception?
Мне было просто интересно знать это :)

А вообще, конечно же большой смысловой нагрузки этот прием не несет. Кроме того, собственный класс исключения работал бы медленнее чем Exception. Exception это встроеный класс на C. Кажется так.
 

zerkms

TDD infected
Команда форума
если исключения не будут наследоваться от одного класса - то как написать catch, который будет ловить исключения ВСЕХ ТИПОВ?
 

BigWindow

Новичок
Автор оригинала: zerkms
если исключения не будут наследоваться от одного класса - то как написать catch, который будет ловить исключения ВСЕХ ТИПОВ?
Ну да, это проблема! Так вот я и говорю о том же.

У нас тогда есть вариант использовать иерархию самодельных исключений, наподобии наследования от Exception'а. В этом случае catch наверное будет ловить родительские классы. Как вы думаете?

В любом случае это будет медленное решение и лучше пользоваться ООП и расширять базовый класс Exception'a.
 
Сверху