powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как временно отключить обработку ошибок
9 сообщений из 9, страница 1 из 1
Как временно отключить обработку ошибок
    #32042267
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю на MSSQL 2000.
Я хочу проверить наличие временной таблицы.
Пишу такой код:

CREATE PROCEDURE РежимРепликации
AS
BEGIN
select count(*) from #T1;
if @@error=0 return (1) else return (0);
END
GO

После оператора Select происходит ошибка ( естественно) и процедура не может возвратить ни Да ни Нет.
Подскажите, как на время отключить генерацию ошибки (прерывания, исключения), а затем восстановить режим?
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042270
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
if Object_ID('tempdb..#ТвояСуперскаяТабла')> 0 
  begin
  end
else
  begin
  end
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042335
Vikentiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, а как же быть с Error Handling?
Как перехватить ошибку, подобную этой?
Уважаемая СуКа вопрос обошла, но не решила.

Викентий
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042336
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем перехватывать ошибки? Ошибки надо не допускать. И 3JIA9I CyKA ответил совершенное правильно. Его решение снимает проблему? Ответ - да. Самый лучший способ решения проблем - создание условий, при которых они не возникают.
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042337
Vikentiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может Вы научите нас всех и Microsoft не делать ошибок?

Я предлагаю следующее:
Ошибки с severity level > 15 фатальные,
(смотри: http://www.idisoft.com/products/sample/errors/exceptions.htm

в этом случае Ваше задание делает rollback и происходит прерывание.
Запуская select * from T
где Т не существует, генерирует ошибку 208 и level = 16,
т.е. возникает фатальная ошибка
Поэтому и вываливаетесь сразу и след. шаг игнорируется.

Мое предложение. Уложить этот select в stored procedure
а ее в свою очередь в другую, которая и будет перехватывать @@error, т.е.

create procedure test_inner
AS
select * from ASGFDDFGFGFGF
-- jumping out having fatal error = 208
--... doesnt matter
select @@error

create procedure test_out
AS
exec testinner
select @@error

execute test2 -- the error from the test_inner will be traped.
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042354
Vikentiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, последнюю строку замените на

execute test_out -- the error from the test_inner will be traped
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042363
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению научить писать программы без ошибок я не могу, так как не умею так писать сам.
Но по моему мнению обработчики ошибок должны обрабатывать только ошибки, не обнаруживемые иначе, как через исключительные ситуации (силился придумать какой-нибудь пример, но так и не смог, в личной практике такого не случалось). При разработке проекта, когда еще точно не видны все грабли, это допустимо и полезно. Но в готовом проекте никаких исключительных ситуаций не должно быть.

Опять же по-моему мнению, проверка чего-либо через генерацию ошибки не является хорошим стилем программирования.
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042365
Vikentiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, а здесь речь не идет о генерации ощибки,
я пытаюсь перехватить фатальную ошибку и смочь
анализировать ее в рамках текущей сессии.
...
Рейтинг: 0 / 0
Как временно отключить обработку ошибок
    #32042434
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за содержательный ответ. Особая благодарность СуКЕ и Vikentiyu.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как временно отключить обработку ошибок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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