diff --git a/Tank/Errors.log b/Tank/Errors.log
new file mode 100644
index 0000000..685df9b
--- /dev/null
+++ b/Tank/Errors.log
@@ -0,0 +1,29 @@
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[ERROR]
+Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[ERROR]
+Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[ERROR]
+Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции1411 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции1411 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции0 (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции14 (05.12.2023)
+[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
+[WARN ] Не удалось удалить объект с позиции14 (05.12.2023)
diff --git a/Tank/Infos.log b/Tank/Infos.log
new file mode 100644
index 0000000..4bd47de
--- /dev/null
+++ b/Tank/Infos.log
@@ -0,0 +1,79 @@
+[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
+[INFO ] Объект с позиции 0удалён (05.12.2023)
+[INFO ] Не удалось удалить объект из набора (05.12.2023)
+[INFO ] Не удалось удалить объект из набора (05.12.2023)
+[INFO ] Не удалось удалить объект из набора (05.12.2023)
+[INFO ] Не удалось удалить объект из набора (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 12 (05.12.2023)
+[INFO ] Объект с позиции 0удалён (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
+[INFO ] Объект с позиции 14удалён (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 100 (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
+[INFO ] Объект с позиции 14удалён (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 14 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
+[INFO ] Объект с позиции 14удалён (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 14 (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 11 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 21 (05.12.2023)
+[INFO ] Не удалось удалить объект с позиции 11 (05.12.2023)
+[INFO ] Набор добавлен: 1 (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Набор добавлен: 12 (05.12.2023)
+[INFO ] Набор добавлен: 1 (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Добавлен новый объект (05.12.2023)
+[INFO ] Сохранение всех объектов в файл: E:\file.txt (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
+[INFO ] Объект с позиции 1удалён (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
+[INFO ] Объект с позиции 14удалён (05.12.2023)
+[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
+[INFO ] Объект с позиции 14удалён (05.12.2023)
diff --git a/Tank/Tank.iml b/Tank/Tank.iml
index c90834f..af3c693 100644
--- a/Tank/Tank.iml
+++ b/Tank/Tank.iml
@@ -1,11 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Tank/src/FormTankCollection.java b/Tank/src/FormTankCollection.java
index bd5f100..ee99d3f 100644
--- a/Tank/src/FormTankCollection.java
+++ b/Tank/src/FormTankCollection.java
@@ -14,10 +14,11 @@ import javax.swing.filechooser.FileNameExtensionFilter;
import java.util.LinkedList;
import java.util.Queue;
+import org.apache.logging.log4j.Logger;
+
public class FormTankCollection {
private class Canvas extends JComponent {
- public Canvas() {
- }
+ public Canvas() { }
public void paintComponent(Graphics g) {
super.paintComponent(g);
@@ -61,7 +62,13 @@ public class FormTankCollection {
}
}
- FormTankCollection() {
+ // Логгер
+ private Logger logger;
+
+ FormTankCollection(Logger logger) {
+ System.setProperty("log4j.configutationFile", "src//log4j2.xml");
+ this.logger = logger;
+
listModel = new DefaultListModel();
jListStorage = new JList(listModel);
canv = new Canvas();
@@ -73,6 +80,7 @@ public class FormTankCollection {
new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jListStorage.getSelectedIndex() == -1) {
+ logger.warn("Добавление объекта в несуществующий набор");
return;
}
var obj = _storage.get(jListStorage.getSelectedValue());
@@ -84,11 +92,20 @@ public class FormTankCollection {
form.buttonAdd.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
- if (obj != null && obj.Add(form._vehicle) != -1) {
- JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
- Draw();
- } else {
+ try {
+ if (obj != null && obj.Add(form._vehicle) != -1) {
+ logger.info("Добавлен новый объект");
+ JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ Draw();
+ }
+ } catch (TankStorageOverflowException ex) {
+ logger.warn("Коллекция переполнена: "+ex.getMessage());
+ JOptionPane.showMessageDialog(null, ex.getMessage());
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
+
+ } catch (Exception ex){
+ logger.fatal("Неизвестная ошибка: "+ex.getMessage());
+ JOptionPane.showMessageDialog(null, "Ошибка. Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
}
form.Frame.dispose();
}
@@ -106,6 +123,7 @@ public class FormTankCollection {
new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jListStorage.getSelectedIndex() == -1) {
+ logger.warn("Удаление объекта из несуществующего набора");
return;
}
var obj = _storage.get(jListStorage.getSelectedValue());
@@ -127,13 +145,25 @@ public class FormTankCollection {
}
int pos = Integer.parseInt(TextBoxNumber.getText());
- var removed = obj.remove(pos);
- if (removed != null) {
- Queue.add(removed);
- JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
- Draw();
- } else {
- JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ try {
+ var removed = obj.remove(pos);
+ if (removed != null) {
+ JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ Queue.add(removed);
+ Draw();
+ logger.info("Объект с позиции " + pos + "удалён");
+ }
+ else
+ {
+ JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ logger.info("Не удалось удалить объект с позиции " + pos);
+ }
+ } catch (TankNotFoundException ex) {
+ logger.warn("Не удалось удалить объект с позиции"+ pos);
+ JOptionPane.showMessageDialog(null, ex.getMessage());
+ } catch (Exception ex) {
+ logger.fatal("Неизвестная ошибка: " +ex.getMessage());
+ JOptionPane.showMessageDialog(null, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
}
}
}
@@ -145,6 +175,7 @@ public class FormTankCollection {
public void actionPerformed(ActionEvent e) {
if (Queue.size() == 0) {
JOptionPane.showMessageDialog(null, "Нет удалённых", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ logger.info("Нет удалённых объектов");
return;
}
FormTank form = new FormTank();
@@ -180,10 +211,12 @@ public class FormTankCollection {
public void actionPerformed(ActionEvent e) {
if (textBoxSetName.getText().length() == 0) {
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Информация", JOptionPane.INFORMATION_MESSAGE);
+ logger.warn("Не все данные заполнены");
return;
}
_storage.AddSet(textBoxSetName.getText());
ReloadObjects();
+ logger.info("Набор добавлен: "+textBoxSetName.getText());
}
}
);
@@ -201,12 +234,14 @@ public class FormTankCollection {
new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jListStorage.getSelectedIndex() == -1) {
+ logger.warn("Удаление несуществующего набора");
return;
}
if (JOptionPane.showConfirmDialog(null, "Удалить объект " + jListStorage.getSelectedValue() + "?", "Удаление", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
return;
}
_storage.DelSet(jListStorage.getSelectedValue());
+ logger.info("Гараж "+jListStorage.getSelectedValue()+" Удалён");
ReloadObjects();
}
}
@@ -233,10 +268,15 @@ public class FormTankCollection {
fileChooser.setDialogTitle("Выберите файл для загрузки данных");
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
- if (_storage.LoadData(selectedFile.getAbsolutePath())) {
- JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
- } else {
- JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
+
+ try {
+ _storage.LoadData(fileChooser.getSelectedFile().getAbsolutePath());
+ ReloadObjects();
+ logger.info("Загрузка всех объектов из файла: " + fileChooser.getSelectedFile().getAbsolutePath());
+ JOptionPane.showMessageDialog(null, "Загрузка всех объектов прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
+ } catch (Exception ex) {
+ logger.error("\n" + "Ошибка при загрузке всех объектов из файла: " + ex.getMessage());
+ JOptionPane.showMessageDialog(null,"Ошибка при загрузке всех объектов" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
}
}
ReloadObjects();
@@ -256,10 +296,15 @@ public class FormTankCollection {
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
- if(_storage.SaveData(selectedFile.getAbsolutePath()))
- JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
- else
- JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат", JOptionPane.ERROR_MESSAGE);
+
+ try {
+ _storage.SaveData(fileChooser.getSelectedFile().getAbsolutePath());
+ logger.info("Сохранение всех объектов в файл: " + fileChooser.getSelectedFile().getAbsolutePath());
+ JOptionPane.showMessageDialog(null,"Сохранение объектов прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
+ } catch (Exception ex) {
+ logger.error("Error saving all maps to file: " +ex.getMessage());
+ JOptionPane.showMessageDialog(null, "Ошибка при сохранении объектов: "+ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
+ }
}
}
}
@@ -281,10 +326,14 @@ public class FormTankCollection {
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
- if (_storage.LoadDataSingle(selectedFile.getAbsolutePath())) {
+ try {
+ _storage.LoadDataSingle(fileChooser.getSelectedFile().getAbsolutePath());
+ ReloadObjects();
+ logger.info("Загрузка всех объектов из файла: " + fileChooser.getSelectedFile().getAbsolutePath());
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
- } else {
- JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
+ } catch (Exception ex) {
+ logger.error("\n" + "Ошибка при загрузке всех объектов из файла: " + ex.getMessage());
+ JOptionPane.showMessageDialog(null, "Не загрузилось" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
}
}
ReloadObjects();
@@ -308,10 +357,15 @@ public class FormTankCollection {
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
- if (_storage.SaveDataSingle(selectedFile.getAbsolutePath(), jListStorage.getSelectedValue()))
- JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
- else
- JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат", JOptionPane.ERROR_MESSAGE);
+
+ try {
+ _storage.SaveDataSingle(fileChooser.getSelectedFile().getAbsolutePath(), jListStorage.getSelectedValue());
+ logger.info("Сохранение всех объектов в файл: " + fileChooser.getSelectedFile().getAbsolutePath());
+ JOptionPane.showMessageDialog(null,"Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
+ } catch (Exception ex) {
+ logger.error("Error saving all maps to file: " +ex.getMessage());
+ JOptionPane.showMessageDialog(null, "Не сохранилось: "+ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
+ }
}
}
}
diff --git a/Tank/src/Main.java b/Tank/src/Main.java
index c89dd48..2b025d0 100644
--- a/Tank/src/Main.java
+++ b/Tank/src/Main.java
@@ -1,5 +1,7 @@
+import org.apache.logging.log4j.*;
+
public class Main {
public static void main(String[] args) {
- new FormTankCollection();
+ new FormTankCollection(LogManager.getLogger(Main.class));
}
}
\ No newline at end of file
diff --git a/Tank/src/SetGeneric.java b/Tank/src/SetGeneric.java
index a404521..6671cee 100644
--- a/Tank/src/SetGeneric.java
+++ b/Tank/src/SetGeneric.java
@@ -17,18 +17,18 @@ public class SetGeneric {
// Добавление объектов в набор
public int Insert(T tank) {
if(_places.size() >= _maxCount)
- return -1;
+ throw new TankStorageOverflowException(_maxCount);
_places.add(0,tank);
return 0;
}
public boolean Insert(T tank, int position) {
// Проверка позиции
- if (position < 0 || position > _places.size())
- return false;
+ if (position < 0 || position >= Count())
+ throw new TankNotFoundException(position);
if (_places.size() >= _maxCount)
- return false;
+ throw new TankStorageOverflowException(_maxCount);
if (position == _places.size())
_places.add(tank);
@@ -41,8 +41,9 @@ public class SetGeneric {
// Удаление объекта из набора с конкретной позиции
public boolean Remove(int position) {
// Проверка позиции
- if (position < 0 || position >= _places.size())
- return false;
+ if (position < 0 || position >= Count() || position > _maxCount)
+ throw new TankNotFoundException(position);
+
_places.remove(position);
return true;
}
diff --git a/Tank/src/TankNotFoundException.java b/Tank/src/TankNotFoundException.java
new file mode 100644
index 0000000..a06d9a0
--- /dev/null
+++ b/Tank/src/TankNotFoundException.java
@@ -0,0 +1,15 @@
+public class TankNotFoundException extends RuntimeException {
+ public TankNotFoundException() { }
+ public TankNotFoundException(String message) {
+ super(message);
+ }
+ public TankNotFoundException(String message, Throwable exception) {
+ super(message, exception);
+ }
+ public TankNotFoundException(Throwable exception) {
+ super(exception);
+ }
+ protected TankNotFoundException(int pos) {
+ super("Не найден объект по позиции "+pos);
+ }
+}
\ No newline at end of file
diff --git a/Tank/src/TankStorageOverflowException.java b/Tank/src/TankStorageOverflowException.java
new file mode 100644
index 0000000..becb173
--- /dev/null
+++ b/Tank/src/TankStorageOverflowException.java
@@ -0,0 +1,15 @@
+public class TankStorageOverflowException extends RuntimeException{
+ public TankStorageOverflowException() { }
+ public TankStorageOverflowException(String message){
+ super(message);
+ }
+ public TankStorageOverflowException(String message, Throwable exception){
+ super(message, exception);
+ }
+ protected TankStorageOverflowException(Throwable exception){
+ super(exception);
+ }
+ public TankStorageOverflowException(int count){
+ super("В наборе превышено допустимое количество: "+count);
+ }
+}
\ No newline at end of file
diff --git a/Tank/src/TanksGenericCollections.java b/Tank/src/TanksGenericCollections.java
index 8632d9c..d0fb963 100644
--- a/Tank/src/TanksGenericCollections.java
+++ b/Tank/src/TanksGenericCollections.java
@@ -39,9 +39,8 @@ public class TanksGenericCollections collections = new TanksGenericCollections<>(_pictureWidth, _pictureHeight);
if (_tankStorages.containsKey(key)){
@@ -87,7 +82,7 @@ public class TanksGenericStorage {
for (String elem : tanksStrings) {
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
if(vehicle == null || collections.Add(vehicle) == -1)
- return false;
+ throw new NoSuchElementException("Объект не найден");
}
if(_tankStorages.containsKey(key))
@@ -95,13 +90,11 @@ public class TanksGenericStorage {
_tankStorages.put(key, collections);
} catch (IOException e) {
e.printStackTrace();
- return false;
}
- return true;
}
// Сохранение информации по технике в хранилище в файл
- public boolean SaveData(String filename) {
+ public void SaveData(String filename) throws IOException {
if(new File(filename).exists()) {
new File(filename).delete();
}
@@ -117,30 +110,28 @@ public class TanksGenericStorage {
}
if (data.length() == 0)
- return false;
+ throw new InvalidStreamException("Нет данных для сохранения");
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
writer.write("TankStorage" + System.lineSeparator() + data.toString());
} catch (IOException e) {
e.printStackTrace();
- return false;
}
- return true;
}
// Загрузка информации по технике в хранилище из файла
- public boolean LoadData(String filename) {
+ public void LoadData(String filename) throws IOException {
if (!new File(filename).exists()) {
- return false;
+ throw new FileNotFoundException("Файл не найден");
}
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String s = reader.readLine();
if (s == null || s.length() == 0)
- return false;
+ throw new NullPointerException("Нет данных для загрузки");
if (!s.startsWith("TankStorage"))
- return false;
+ throw new IllegalArgumentException("Неверный формат данных"); //если нет такой записи, то это не те данные
_tankStorages.clear();
@@ -158,15 +149,13 @@ public class TanksGenericStorage {
for (String elem : reversedSet) {
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
if (vehicle == null || collection.Add(vehicle) == -1)
- return false;
+ throw new NoSuchElementException("Объект не найден");
}
_tankStorages.put(record[0], collection);
}
} catch (IOException e) {
e.printStackTrace();
- return false;
}
- return true;
}
// Словарь (как хранилище)
diff --git a/Tank/src/log4j2.xml b/Tank/src/log4j2.xml
new file mode 100644
index 0000000..ea42c3c
--- /dev/null
+++ b/Tank/src/log4j2.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+ [%-5level] %msg (%d{dd.MM.yyyy})%n
+
+
+
+
+
+
+
+ [%-5level] %msg (%d{dd.MM.yyyy})%n
+
+
+
+
+
+
+
+
+
+
+
+