Различают типы исключений Sybase - PullRequest
0 голосов
/ 20 сентября 2011

Мне нужно различать типы исключений Sybase на основе диапазона кодов ошибок.

По сути, мне нужно различать исключения, связанные с системой Sybase, и исключения данных.

У меня есть код на C # для обработки исключения базы данных Sybase.

Мы получаем коды ошибок в исключении, но я не знаю диапазон, который определяет, что код ошибки - системное исключение sybase, а не исключение данных.

Мне нужно обработать оба этих исключения по-разному.

Может кто-нибудь, пожалуйста, помогите в этом.

Копирование кода ниже.

using System.Data.Common;

int Range1 = 0;
int Range2 = 2000;
try
{
   // Sybase data base operation 
}
catch (DbException e)
            {
  // Sybase system exception like database space not availabe , Time out error 
                if(e.ErrorCode > Range1  && e.ErrorCode< Range2)
                {
                    // This is system excpetion so dump the data to be reprocessed after database is up . 
                }
                // Excpetions like referential integrity violation , value is more than max length 
                else
                {
                    // This is data releted exception so Don't process this data again as the data itself is wrong 
                }
}

1 Ответ

0 голосов
/ 24 августа 2012

Поскольку Sybase использует номера ошибок меньше 2000, мы решили использовать номера больше 3000. Вы можете контролировать возвращенный код ошибки с помощью функции raiserror.Да, это не опечатка.

Примечание: Sybase со многими из своих функций пыталась сохранить нажатия клавиш, удалив дублирующиеся символы.В этом случае Sybase не разрешал двойные «е», но оставлял двойные «r». Хорошо.

Добрый SQL, спокойной ночи.

...