powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / entityFramework обработать ошибки при context.SaveChanges()
19 сообщений из 19, страница 1 из 1
entityFramework обработать ошибки при context.SaveChanges()
    #39192071
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Подскажите почему не срабатывает исключение ?
Код записан через попытку:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
myRe = context.Championships.Add(myRe);
                try
                {
                    context.SaveChanges();
                    return new LogRecordBase(context.Championships.Local[0].Id, "Записано " + DateTime.Now.ToString(), TableName, false);//context.News.Local[0].Id;//если новый элемент то тут сидит Id нового эл.
                }
                catch (DbEntityValidationException ex)
                {
                    string v = GetEntityValidationErrors(ex);
                    return new LogRecordBase(0, v, TableName, true);
                }


но при указании неправильной или пустой даты(01.01.0001) все равно желтый экран смерти на строку context.SaveChanges(); :
Преобразование типа данных datetime2 в тип данных datetime привело к выходу значения за пределы диапазона.
Выполнение данной инструкции было прервано.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192226
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUserПреобразование типа данных datetime2 в тип данных datetime привело к выходу значения за пределы диапазона.
Это означает что пытаетесь использовать неверный тип данных.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192351
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я это подозревал. Как обработать непредвиденную ошибку и не попадать на желтый экран смерти. Почему try - catch не работает ?
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192358
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUserЯ это подозревал. Как обработать непредвиденную ошибку и не попадать на желтый экран смерти. Почему try - catch не работает ?
Наверное, потому что исключение не подпадает под тип DbEntityValidationException...
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192426
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
catch (Exception e) 
{
//тут остальное
}
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192494
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну хорошо а как дальше написать перебор типов ошибок ?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
catch (Exception e) 
{
 if(Ошибка типа DbEntityValidationException)
 {
  return GetEntityValidationErrors((DbEntityValidationException)e);
 }
 else
 {
   return e.Message;
 }
}
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192498
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUserну хорошо а как дальше написать перебор типов ошибок ?
Каков смысл перебора ошибок, если Вы не знаете какую конкретно ошибку вы хотите отлавливать и обрабатывать по-особенному?
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192503
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот обработать
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192504
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну вот обработать DbEntityValidationException хочу

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 private string GetEntityValidationErrors(DbEntityValidationException ex)
        {
            string v = "";
            foreach (DbEntityValidationResult validationError in ex.EntityValidationErrors)
            {
                v = "Object: " + validationError.Entry.Entity.ToString() ;

                foreach (DbValidationError err in validationError.ValidationErrors)
                {
                    v += err.ErrorMessage ;
                }
            }
            return v;
        }
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192506
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192509
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
                try
                {
                    context.SaveChanges();
                    return new LogRecordBase(context.Championships.Local[0].Id, "Записано " + DateTime.Now.ToString(), TableName, false);//context.News.Local[0].Id;//если новый элемент то тут сидит Id нового эл.
                }
                catch (DbEntityValidationException ex)
                {
                    // handle your specific exception here
                    string v = GetEntityValidationErrors(ex);
                    return new LogRecordBase(0, v, TableName, true);
                }
                catch (System.Exception ex)
                {
                    // handle your general exception here
                }
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192529
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто хотелось - бы информирование о видах ошибок в отдельную функцию вынести, что бы если завтра появится новый тип ошибки , то в одном месте в этой функции и описать его ....
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192540
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUser, вынесите обработку ошибок в global.asax.cs на событие Application_Error
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192557
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так обрабатываю:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Friend Function InvokeMethod() As Object
        Try
            ....
        Catch ex As Exception
            ResponseWriteError(GetExMessage(ex))
            Return Nothing
        End Try
    End Function

    Friend Function GetExMessage(ByVal Ex As Exception) As String
        If Ex Is Nothing Then Return ""
        GetExMessage = Ex.Message & vbCrLf & GetExMessage(Ex.InnerException)
    End Function

Туда попадает и текст, описывающий проблему валидации.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192561
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу смысла как-то по особому обрабатывать разные типы ошибок.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192565
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЯ так обрабатываю:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Friend Function InvokeMethod() As Object
        Try
            ....
        Catch ex As Exception
            ResponseWriteError(GetExMessage(ex))
            Return Nothing
        End Try
    End Function

    Friend Function GetExMessage(ByVal Ex As Exception) As String
        If Ex Is Nothing Then Return ""
        GetExMessage = Ex.Message & vbCrLf & GetExMessage(Ex.InnerException)
    End Function


Туда попадает и текст, описывающий проблему валидации.
Я обычно еще Stack записываю - там как правило и бывает самая ценная информация.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192566
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyНе вижу смысла как-то по особому обрабатывать разные типы ошибок.
Бывает в редких случаях необходимо выцепить и обособленно обработать определенный тип ошибки, но что-то сомневаюсь, что ТСу это реально необходимо.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192729
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronAntonariyЯ так обрабатываю:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Friend Function InvokeMethod() As Object
        Try
            ....
        Catch ex As Exception
            ResponseWriteError(GetExMessage(ex))
            Return Nothing
        End Try
    End Function

    Friend Function GetExMessage(ByVal Ex As Exception) As String
        If Ex Is Nothing Then Return ""
        GetExMessage = Ex.Message & vbCrLf & GetExMessage(Ex.InnerException)
    End Function


Туда попадает и текст, описывающий проблему валидации.
Я обычно еще Stack записываю - там как правило и бывает самая ценная информация.я записываю лишь имя процедуры, в которой выскочило исключение, в 99% случаев этого достаточно.
...
Рейтинг: 0 / 0
entityFramework обработать ошибки при context.SaveChanges()
    #39192738
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyя записываю лишь имя процедуры, в которой выскочило исключение, в 99% случаев этого достаточно.
Счастливчик.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / entityFramework обработать ошибки при context.SaveChanges()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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