|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
Здравствуйте. Я перешёл на платформу Sybase относительно недавно. Сейчас работаю с Sybase ASE 12.5 (в этом году будет переход на версию 15), ранее имел дело прежде всего с Oracle. В Sybase ASE меня неприятно удивили ограниченные (по крайней мере, мне так показалось) возможности для обработки ошибок средствами Transact-SQL в хранимых процедурах. Прежде всего бросилось в глаза следующее: 1. Нет возможности толком отловить/перехватить ошибку. Имею ввиду отсутствие подобия блока исключений (exception) в конце процедур в Oracle. А если нельзя отловить, то и не обработать как следует. 2. Если возникла какая-то ошибка (например, insert не прошёл в середине процедуры), то выполнение процедуры продолжается, что может вызвать дальнейшие ошибки и т.д. 3. Основным средством оказалась проверка значения глобальной переменной @@error. Но проверять его нужно сразу же (!) после возникновения ошибки, иначе последующие выражения (а выполнение, как я уже упоминал, продолжается) просто "сбросят" значение. Ну хорошо, можно поставить такую проверку там, где предвидишь возможные проблемы, но не писать же её сплошь и рядом... Подскажите, как писать более надёжный код на Transact-SQL, какие механизмы использовать? Чтобы не просто "падало", а была бы возможность и осмысленное сообщение какое-то выдать, и в лог что-то полезное написать. Может быть я просто что-то упустил по неопытности?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 11:29 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
Исключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система. Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 18:05 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
Вот два полезных текста. Error Handling in SQL 2000 – a Background Implementing Error Handling with Stored Procedures in SQL 2000 Это всё про MS SQL 2000, но подойдет и для Sybase ASE ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2011, 22:39 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
White OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система. Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее. Считаю, что злом исключения становятся в случаях "нецелевого использования", например, когда на них пытаются строить некую логику в рамках основного алгоритма. Для адекватных целей и в умеренных дозах (генерация внятных сообщений, логи, высвобождение ресурсов при "авариях") механизм исключений удобен и прост. Если же проверять каждую подозрительную команду, то в процедурах появляется куча чисто проверочного кода, который ничего не делает для решения задачи. rcryoВот два полезных текста Спасибо за полезные тексты, ознакомлюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2011, 14:42 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
On 04.03.2011 14:42, jossif wrote: > White Owl > Исключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система. > Считаю, что злом исключения становятся в случаях "нецелевого использования", Вы не обращайте внимание на бурчание старого С-шника. Ну н е л ю б и т о н и х ! Правда, что обращай, что не обращай, итог будет один - в ASE исключений нет и не предвидется. НАДО ПРОВЕРЯТЬ @@error ПОСЛЕ КАЖДОГО ОПЕРАТОРА. Мы ещё обязательно проверяем @@rowcount (не всегда правда). Просто проверять и аккуратно писать TSQL код, других средств нет. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2011, 15:41 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
White OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система. Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее. Да ладно. Проверять на ошибки каждую команду, увеличивая код, рискуя исказить логику работы в результате того, что забыли проверить одну команду, а так же пользуясь операторами GOTO ... это конечно же правильнее, точнее и удобнее со всех сторон :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2011, 13:48 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
ASCRUSWhite OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система. Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее. Да ладно. Проверять на ошибки каждую команду, увеличивая код, рискуя исказить логику работы в результате того, что забыли проверить одну команду, а так же пользуясь операторами GOTO ... это конечно же правильнее, точнее и удобнее со всех сторон :)я чувствую в ваших словах издевку... Мне сегодня лениво спорить, поэтому скажу только одно: мой предыдущий пост не шутка, я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2011, 00:25 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
White Owlя чувствую в ваших словах издевку... Мне сегодня лениво спорить, поэтому скажу только одно: мой предыдущий пост не шутка, я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь. Пользоваться или не пользоваться - это свободное право и выбор каждого человека. Мне лично в Дельфи, Джаве и Дотнете с их навороченной классовой иерархией очень удобно пользоваться исключениями, в ASA я их использую редко, но конкретно по делу, в PowerBuilder я их не использую вообще и ни разу не обламываюсь. Ну а зло ... понятие относительное - я вот уже достаточно давно злом ООП считаю и тупиковой веткой эволюции, однако ж это не мешает мне пользоваться всеми "благами цивилизации" ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2011, 11:04 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
ASCRUS, а я уж думал, что я единственный, кто считал ООП тупиком эволюции! Особенно в его реализации С++. Млин теперь легче стало. Хотя конечно после шаблонов, ООП уже скорее выглядит как добро. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2011, 18:14 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
White Owl я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь. Да мы в общем-то знаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2011, 03:18 |
|
обработка ошибок в Sybase ASE
|
|||
---|---|---|---|
#18+
Ggg_oldASCRUS, а я уж думал, что я единственный, кто считал ООП тупиком эволюции! Особенно в его реализации С++. Млин теперь легче стало. Хотя конечно после шаблонов, ООП уже скорее выглядит как добро. )))) Так нас много!! Анти ООП-эшников!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2011, 17:55 |
|
|
start [/forum/topic.php?fid=55&fpage=20&tid=2010306]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 329ms |
total: | 451ms |
0 / 0 |