Имхо, сбой — это нештатная ситуация. Деление на ноль, ошибка преобразования строки в число, ошибка соединения клиентской части с серверной, итд.
В данном случае отбой при недостатке прав — это ожидаемая, штатная ситуация.
public Person authPerson(int id) throws NoSuchPersonException {
Person person = new Person(id); // бросаем NoSuchPersonException если пользователя с таким id нет
person.applySomeRulesOrSomething();
return person.auth();
}
Возвращаем объект Person если все ОК, и null если не прошла авторизация (в т.ч. у пользователя не хватает пермишенов).
Врядли это можно назвать сбоем, а вот исключительной ситуацией — вполне.
У меня VX nano уже года 4 живет, и все ОК, только лак немного облез со средней кнопки. Батареек (ААА) хватает при активном использовании где-то на 2-3 месяца.
> Помните ироническое высказывание о том, что в вашем кармане компьютер, который во много раз мощнее бортового компьютера управлявшего ракетой Гагарина?
Если мне не изменяет память, ВУ на порядки слабее тех, что сейчас используются в обычных телефонах, в свое время управляли группой спутников и полетами на Луну.
А в «ракете Гагарина» не было компьютера насколько я помню. Они тогда были очень большими, теплыми и ламповыми.
А, вот теперь понятно. А если попробовать внутри JSNI метода определить JS функцию (которую и вызывать извне) и в ней сделать вызов this.@com.google.gwt.examples.JSNIExample::myInstanceField?
Ну того что мне смогло потребоваться JSNI вполне смогло сделать.
> повесить онклик на картинку, которую перехватит GWT
Т.е. у вас есть где-то картинка, на onClick на которую вам нужно перехватить? И хандлер в JSNI-методе не срабатывал? Или в чем была проблема?
> Основные (HorizontalPanel, VerticalPanel, FlexTable, Grid) — верстают таблично
Почему вы думаете что это основные? Основные — это SimplePanel например, состоящая из 1-го div'а.
Другое дело, что проще и быстрее использовать Grid/etc.
> UI Binder при этом ну совсем никак не помогает.
Поверьте мне, это вполне удобная и полезная штука. На личном опыте ощутил.
> В автоматически создаваемых элементах интерфейса использовалась махровая табличная верстка. Любой прямоугольный блок генерировал таблицу с одной ячейкой.
Кроме HorizontalPanel / VerticalPanel есть еще 100500 компонентов, а если этого мало — можно написать свои, на любой вкус.
> Сверстать свой HTML и скормить его GWT на практике оказалось также не очень-то просто.
Про UiBinder вы, наверное, тоже не слышали.
> В теории GWT поддерживает JSNI — что-то а-ля ассемблерных вставок в Си, только с Javascript в роли ассемблера. Но работает это только в одну сторону. То есть вызвать какую-то внешнюю js-библиотеку из GWT вы можете без проблем. А вот наоборот…
Будет еще веселее, если 28-го числа они снова передумают.
PS: Так это, тут разведка докладывает, что таки не будет.
«18.10.2011, Киев 14:30:09 Парламент Украины сегодня не смог проголосовать за возвращение перехода на зимнее время путем перевода стрелок часов на час назад в последнее воскресенье октября. За такое решение проголосовали 216 депутатов при 226 необходимых. Вопрос выносился на обсуждение дважды.»
В данном случае отбой при недостатке прав — это ожидаемая, штатная ситуация.
public Person authPerson(int id) throws NoSuchPersonException {
Person person = new Person(id); // бросаем NoSuchPersonException если пользователя с таким id нет
person.applySomeRulesOrSomething();
return person.auth();
}
Возвращаем объект Person если все ОК, и null если не прошла авторизация (в т.ч. у пользователя не хватает пермишенов).
Врядли это можно назвать сбоем, а вот исключительной ситуацией — вполне.
Там есть замечательные примеры с пробросом исключений.
> 2 — оно как бы не совсем про ООП.
Оно легко адаптируется к использованию с ООП. Не нашел толкового примера на C++, но думаю мысль и из этого понятна.
Не всегда и не везде:
today.java.net/article/2006/04/04/exception-handling-antipatterns#antipatterns
stackoverflow.com/questions/2870701/risking-the-exception-anti-pattern-with-some-modifications
www.rockstarprogrammer.org/post/2007/jun/09/java-exception-antipatterns/
etc
> Кстати, мне сказали, что исключения тормозят систему…
В целом, они отрабатывают медленнее. Но, стоит ли гнаться за этими миллисекундами, если bottleneck в другом месте?
Было бы неплохо имхо.
О, спасибо, не знал этого.
Если мне не изменяет память, ВУ на порядки слабее тех, что сейчас используются в обычных телефонах, в свое время управляли группой спутников и полетами на Луну.
А в «ракете Гагарина» не было компьютера насколько я помню. Они тогда были очень большими, теплыми и ламповыми.
Ну того что мне смогло потребоваться JSNI вполне смогло сделать.
> повесить онклик на картинку, которую перехватит GWT
Т.е. у вас есть где-то картинка, на onClick на которую вам нужно перехватить? И хандлер в JSNI-методе не срабатывал? Или в чем была проблема?
> Основные (HorizontalPanel, VerticalPanel, FlexTable, Grid) — верстают таблично
Почему вы думаете что это основные? Основные — это SimplePanel например, состоящая из 1-го div'а.
Другое дело, что проще и быстрее использовать Grid/etc.
> UI Binder при этом ну совсем никак не помогает.
Поверьте мне, это вполне удобная и полезная штука. На личном опыте ощутил.
> «Можете написать свои» это бугога.
Да какие «бугога», это не так уж и сложно.
Четкое следование паттерну MVC/MVP, выделение view в отдельный класс + UiBinder творят чудеса.
> В автоматически создаваемых элементах интерфейса использовалась махровая табличная верстка. Любой прямоугольный блок генерировал таблицу с одной ячейкой.
Кроме HorizontalPanel / VerticalPanel есть еще 100500 компонентов, а если этого мало — можно написать свои, на любой вкус.
> Сверстать свой HTML и скормить его GWT на практике оказалось также не очень-то просто.
Про UiBinder вы, наверное, тоже не слышали.
> В теории GWT поддерживает JSNI — что-то а-ля ассемблерных вставок в Си, только с Javascript в роли ассемблера. Но работает это только в одну сторону. То есть вызвать какую-то внешнюю js-библиотеку из GWT вы можете без проблем. А вот наоборот…
Вы про это — code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsJSNI.html#methods-fields?
PS: Так это, тут разведка докладывает, что таки не будет.
«18.10.2011, Киев 14:30:09 Парламент Украины сегодня не смог проголосовать за возвращение перехода на зимнее время путем перевода стрелок часов на час назад в последнее воскресенье октября. За такое решение проголосовали 216 депутатов при 226 необходимых. Вопрос выносился на обсуждение дважды.»
www.rbc.ru/rbcfreenews/20111018143009.shtml
«Поразительное видео [..], демонстрирующее [..]».