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

BigWindow

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

Все привет!

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

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

PHP:
<?php    
class AltException {};   

try {  	
   throw new AltException;  	  
} catch (Exception $e) {  	
   print "!!!";  
}    
?>

Вот собственно вопрос можно или нет? PHP5 ругается матом. Может PHP4 разрешает делать так?
 
Ты сам ответил на свой вопрос. Да, в PHP 4 нет try/catch.

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

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

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

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

-~{}~ 28.07.08 18:25:

Выходит Джордж ошибся???
 
я не знаю, ошибся он или нет, я знаю как правильно и это описано в мануале.
 
в ранних бета-версиях php5 было можно. видимо книга писалась по ранней бете.
 
А зачем делать исключение, не являющееся потомком Exception?
 
Автор оригинала: Lews
А зачем делать исключение, не являющееся потомком Exception?
Мне было просто интересно знать это :)

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

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

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