У меня есть простой сущности вставки следующим образом:Почему некоторые исключения находятся на нескольких уровнях?
using (var db = new MyContext())
{
var item = new Artist();
TryUpdateModel(item);
if (ModelState.IsValid)
{
db.Artist.Add(item);
try
{
db.SaveChanges();
gvArtist.DataBind();
gvArtist.Visible = true;
}
catch (Exception e)
{
Master.Warning = e.InnerException.InnerException.Message;
}
}
}
e.Message и e.InnerException.Message как приравнять:
«Произошла ошибка при обновлении записей См внутреннее исключение для деталей. «.
Но, e.InnerException.InnerException.Message дает исключение я ищу, который:
«Нарушение UNIQUE KEY ограничение„UQ_artist_Cuid“Невозможно вставить повторяющийся ключ в объект„dbo.artist“. . Значение дублирующегося ключа равно (11). Заявление прекращено ».
Я беспокоюсь об отсутствии других исключений, или вызывает исключение, если я просто держать
Master.Warning = e.InnerException.InnerException.Message;
в игре.
После выхода из цикла 'while'' ex' будет null, поэтому 'ex.Message' будет вызывать' NullReferenceException'. – Hopeless
Спасибо. Я был в нескольких секундах от ложиться спать и не понимал этого. – krillgar