powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / обработка ошибок в Sybase ASE
11 сообщений из 11, страница 1 из 1
обработка ошибок в Sybase ASE
    #37143612
jossif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Я перешёл на платформу Sybase относительно недавно. Сейчас работаю с Sybase ASE 12.5 (в этом году будет переход на версию 15), ранее имел дело прежде всего с Oracle.

В Sybase ASE меня неприятно удивили ограниченные (по крайней мере, мне так показалось) возможности для обработки ошибок средствами Transact-SQL в хранимых процедурах. Прежде всего бросилось в глаза следующее:

1. Нет возможности толком отловить/перехватить ошибку. Имею ввиду отсутствие подобия блока исключений (exception) в конце процедур в Oracle. А если нельзя отловить, то и не обработать как следует.

2. Если возникла какая-то ошибка (например, insert не прошёл в середине процедуры), то выполнение процедуры продолжается, что может вызвать дальнейшие ошибки и т.д.

3. Основным средством оказалась проверка значения глобальной переменной @@error. Но проверять его нужно сразу же (!) после возникновения ошибки, иначе последующие выражения (а выполнение, как я уже упоминал, продолжается) просто "сбросят" значение. Ну хорошо, можно поставить такую проверку там, где предвидишь возможные проблемы, но не писать же её сплошь и рядом...

Подскажите, как писать более надёжный код на Transact-SQL, какие механизмы использовать? Чтобы не просто "падало", а была бы возможность и осмысленное сообщение какое-то выдать, и в лог что-то полезное написать. Может быть я просто что-то упустил по неопытности?..
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37145014
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система.
Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее.
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37147890
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот два полезных текста.
Error Handling in SQL 2000 – a Background
Implementing Error Handling with Stored Procedures in SQL 2000
Это всё про MS SQL 2000, но подойдет и для Sybase ASE
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37149111
jossif
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система.
Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее.
Считаю, что злом исключения становятся в случаях "нецелевого использования", например, когда на них пытаются строить некую логику в рамках основного алгоритма. Для адекватных целей и в умеренных дозах (генерация внятных сообщений, логи, высвобождение ресурсов при "авариях") механизм исключений удобен и прост. Если же проверять каждую подозрительную команду, то в процедурах появляется куча чисто проверочного кода, который ничего не делает для решения задачи.
rcryoВот два полезных текста
Спасибо за полезные тексты, ознакомлюсь.
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37149311
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04.03.2011 14:42, jossif wrote:

> White Owl
> Исключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система.

> Считаю, что злом исключения становятся в случаях "нецелевого использования",

Вы не обращайте внимание на бурчание старого С-шника.
Ну н е л ю б и т о н и х !

Правда, что обращай, что не обращай, итог будет один - в ASE исключений
нет и не предвидется. НАДО ПРОВЕРЯТЬ @@error ПОСЛЕ КАЖДОГО ОПЕРАТОРА.
Мы ещё обязательно проверяем @@rowcount (не всегда правда).

Просто проверять и аккуратно писать TSQL код, других средств нет.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37150906
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система.
Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее.
Да ладно. Проверять на ошибки каждую команду, увеличивая код, рискуя исказить логику работы в результате того, что забыли проверить одну команду, а так же пользуясь операторами GOTO ... это конечно же правильнее, точнее и удобнее со всех сторон :)
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37151708
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSWhite OwlИсключения - зло. Чрезвычайно неудобная и со всех сторон ненадежная система.
Проверять на ошибки каждую подозрительную команду - намного удобнее и точнее.
Да ладно. Проверять на ошибки каждую команду, увеличивая код, рискуя исказить логику работы в результате того, что забыли проверить одну команду, а так же пользуясь операторами GOTO ... это конечно же правильнее, точнее и удобнее со всех сторон :)я чувствую в ваших словах издевку...
Мне сегодня лениво спорить, поэтому скажу только одно: мой предыдущий пост не шутка, я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь.
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37151837
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlя чувствую в ваших словах издевку...
Мне сегодня лениво спорить, поэтому скажу только одно: мой предыдущий пост не шутка, я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь.
Пользоваться или не пользоваться - это свободное право и выбор каждого человека. Мне лично в Дельфи, Джаве и Дотнете с их навороченной классовой иерархией очень удобно пользоваться исключениями, в ASA я их использую редко, но конкретно по делу, в PowerBuilder я их не использую вообще и ни разу не обламываюсь. Ну а зло ... понятие относительное - я вот уже достаточно давно злом ООП считаю и тупиковой веткой эволюции, однако ж это не мешает мне пользоваться всеми "благами цивилизации" ;)
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37152108
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS, а я уж думал, что я единственный, кто считал ООП тупиком эволюции! Особенно в его реализации С++. Млин теперь легче стало. Хотя конечно после шаблонов, ООП уже скорее выглядит как добро.
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37152499
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl я действительно считаю что исключения не удачное изобретение и никогда по доброй воле ими не пользуюсь.

Да мы в общем-то знаем.
...
Рейтинг: 0 / 0
обработка ошибок в Sybase ASE
    #37311589
Mairos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_oldASCRUS, а я уж думал, что я единственный, кто считал ООП тупиком эволюции! Особенно в его реализации С++. Млин теперь легче стало. Хотя конечно после шаблонов, ООП уже скорее выглядит как добро.

)))) Так нас много!! Анти ООП-эшников!!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / обработка ошибок в Sybase ASE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]