|
Вопрос по Exception
|
|||
---|---|---|---|
#18+
Книгу прочитал, данную по ссылке Ермаком. Про сам механизм Exception все естественно понятно. Однако разве в PB генеряться Exception в собственных базовых классах и компонентах ? То есть правильно ли отработается у меня следующий код: Код: plaintext 1. 2. 3. 4. 5.
Думаю что ответ будет однозначным "НЕТ", иначе если бы метод Update генерил Exception, то при вызове Update нам всегда бы пришлось писать try ... catch ... Еще вопросик в догонку - с одной стороны я вроде как могу в событии возбудить исключительную ситуацию и если я его буду вызывать такое событие как: Код: plaintext
то PB потребует заключить его в try catch. Однако с другой стороны я могу его вызвать как Код: plaintext
- тут уже PB естественно ничего не потребует. Как то все замутненно с Exception, такое чувство, что их к PB так ... сбоку прикрутили, чтобы архитектуру Server/Component правильно строить, а вот какой прок от них в клиентской части мне честно говоря не очень понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 18:52 |
|
Вопрос по Exception
|
|||
---|---|---|---|
#18+
object.event EventName() вызывается, отрабатывает и возвращает результат для дальнейшей обработки после вызова. В случае отсутствия в объекте события происходит ошибка. object.TriggerEvent('EventName') вызывается, процесс запускается параллельно основному (типа использования Yield() ). В случае отсутствия результата или даже самого события ошибки не происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 19:19 |
|
Вопрос по Exception
|
|||
---|---|---|---|
#18+
ASCRUS Прежде всего, в РВ открой Object Browser->System Tab->throwable, RMB - Show Hierarchy. Throwable - base class for ALL exceptions in PB, поэтому ловить её - моветон, как известно ловить надо exception наиболее конкретного класса. В данном случае - это скорее всего должно было быть dwruntimeerror, но как ты пральна заметил, Update не throws exceptions, а триггерит dberror event, сие есть легаси, как у нас тут говорят. Механик Утверждение object.TriggerEvent('EventName') вызывается, процесс запускается параллельно основному (типа использования Yield() ) в корне неверно, никакими елдами там не пахнет :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2003, 20:37 |
|
|
start [/forum/topic.php?fid=15&msg=32224379&tid=1339569]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 365ms |
0 / 0 |