Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Александр Петросян (PAF) 20.01.2003 11:37 / 20.01.2003 11:38
не совсем: вывод != действия, хотя всё близко.@auto[] $user_eh[^hash::create[]] @register_user_exception_handler[junction][i] $i($user_eh) $user_eh.$i[$junction] @unhandled_exception[e;stack][i] ^for[i](0;$user_eh-1){ ^if(!$e.handled){ ^user_eh.$i[e] } } ^if(!$e.handled){ … }теперь любой объект/класс может зарегистрироваться, и обрабатывать глобальные ошибки.
@CLASS user @auto[] ^register_user_exception_handler[local_exception_handler] @local_exception_handler[e] ^if(e.type eq "user.authorization"){ ^authorization_failed[] $e.handled(1) } @authorization_failed[] actions @authorize[] ^if(…){ ^throw[user.authorization;failed] }конкретно применительно к авторизации пользователей это выглядит немного громоздко, однако это только один из примеров применения.