Доделал все исключения

This commit is contained in:
Kirill 2024-01-20 09:35:50 +04:00
parent b15b824e76
commit 6747efcf15
5 changed files with 76 additions and 28 deletions

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization;
namespace ProjectTractor.Exceptions
{
[Serializable]
internal class CollectionCreationErrorException : ApplicationException
{
public CollectionCreationErrorException(string name) : base($"Коллекция с именем {name} уже существует") { }
public CollectionCreationErrorException() : base() { }
public CollectionCreationErrorException(string message, Exception exception) :
base(message, exception)
{ }
protected CollectionCreationErrorException(SerializationInfo info,
StreamingContext contex) : base(info, contex) { }
}
}

View File

@ -72,9 +72,17 @@ namespace ProjectTractor
MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
_storage.AddSet(textBoxStorageName.Text);
ReloadObjects();
Log.Information($"Добавлен набор: {textBoxStorageName.Text}");
try
{
_storage.AddSet(textBoxStorageName.Text);
ReloadObjects();
Log.Information($"Добавлен набор: {textBoxStorageName.Text}");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Log.Information($"Не удалось добавить коллекцию: Коллекция с именем {listBoxStorages.SelectedItem.ToString() ?? string.Empty} уже существует");
}
}
/// <summary>
/// Выбор набора
@ -139,9 +147,9 @@ namespace ProjectTractor
pictureBoxCollection.Image = obj.ShowTractors();
}
catch
catch (Exception ex)
{
MessageBox.Show("Не удалось добавить объект");
MessageBox.Show(ex.Message);
Log.Information($"Не удалось добавить объект в коллекцию {listBoxStorages.SelectedItem.ToString() ?? string.Empty}");
}
});
@ -155,7 +163,9 @@ namespace ProjectTractor
/// <param name="e"></param>
private void ButtonRemoveTractor_Click(object sender, EventArgs e)
{
if (listBoxStorages.SelectedIndex == -1)
try
{
if (listBoxStorages.SelectedIndex == -1)
{
return;
}
@ -171,16 +181,23 @@ namespace ProjectTractor
return;
}
int pos = Convert.ToInt32(maskedTextBoxNumber.Text);
try
{
bool m = obj - pos;
MessageBox.Show("Объект удален");
pictureBoxCollection.Image = obj.ShowTractors();
if (obj - pos)
{
MessageBox.Show("Объект удален");
pictureBoxCollection.Image = obj.ShowTractors();
Log.Information($"Обьект удален из набора {listBoxStorages.SelectedItem.ToString()}");
}
else
{
MessageBox.Show("Не удалось удалить объект");
Log.Warning($"Обьект не удален из набора {listBoxStorages.SelectedItem.ToString()}");
}
}
catch (TractorNotFoundException ex)
{
Log.Warning($"Не удалось удалить объкт");
MessageBox.Show(ex.Message);
Log.Warning($"Обьект не найден: {ex.Message} в наборе {listBoxStorages.SelectedItem.ToString()}");
}
}

View File

@ -67,7 +67,14 @@ namespace ProjectTractor.Generics
{
if (!(position >= 0 && position < Count))
throw new TractorNotFoundException(position);
_places.RemoveAt(position);
try
{
_places.RemoveAt(position);
}
catch
{
throw new TractorNotFoundException(position);
}
}
/// <summary>
/// Получение объекта из набора по позиции
@ -81,15 +88,15 @@ namespace ProjectTractor.Generics
try
{
if (!(position >= 0 && position <= Count))
return null;
throw new TractorNotFoundException(position);
return _places[position];
}
catch (TractorNotFoundException ex)
catch
{
return null;
Log.Warning($"Не удалось удалить объкт");
MessageBox.Show(ex.Message);
throw new TractorNotFoundException(position);
}
}
set
{

View File

@ -80,21 +80,12 @@ namespace ProjectTractor.Generics
public static bool operator -(TractorsGenericCollection<T, U> collect, int
pos)
{
try
{
T? obj = collect._collection[pos];
if (obj != null)
{
collect._collection.Remove(pos);
}
return true;
}
catch (TractorNotFoundException ex)
{
return false;
Log.Warning($"Не удалось удалить объкт");
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// Получение объектов коллекции

View File

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using ProjectTractor.DrawningObjects;
using ProjectTractor.MovementStrategy;
using ProjectTractor.Generics;
using ProjectTractor.Exceptions;
namespace ProjectTractor
{
@ -60,9 +61,19 @@ namespace ProjectTractor
/// <param name="name">Название набора</param>
public void AddSet(string name)
{
_tractorStorages.Add(name,
try
{
if (_tractorStorages.ContainsKey(name))
throw new CollectionCreationErrorException(name);
_tractorStorages.Add(name,
new TractorsGenericCollection<DrawningTractor,
DrawningObjectTractor>(_pictureWidth, _pictureHeight));
}
catch
{
throw new CollectionCreationErrorException(name);
}
}
/// <summary>
/// Удаление набора