| Новости | 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]
}конкретно применительно к авторизации пользователей это выглядит немного громоздко, однако это только один из примеров применения.