diff --git a/.gitignore b/.gitignore index 57940fd..8b7a5b9 100644 --- a/.gitignore +++ b/.gitignore @@ -75,5 +75,4 @@ fabric.properties .idea/httpRequests # Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - +.idea/caches/build_file_checksums.ser \ No newline at end of file diff --git a/.idea/WarshipHard.iml b/.idea/WarshipHard.iml index 353864a..f091c4f 100644 --- a/.idea/WarshipHard.iml +++ b/.idea/WarshipHard.iml @@ -8,5 +8,23 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Errors.log b/Errors.log new file mode 100644 index 0000000..562d7c2 --- /dev/null +++ b/Errors.log @@ -0,0 +1,11 @@ +[WARN ] Хранилище переполнено: Превышено допустимое количество в хранилище: 104 (12.12.2022) +[WARN ] Хранилище переполнено: Превышено допустимое количество в хранилище: 104 (12.12.2022) +[WARN ] Не удалось удалить объект на позиции104 (12.12.2022) +[FATAL] Неизвестная ошибка: Index 103 out of bounds for length 103 (12.12.2022) +[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022) +[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022) +[WARN ] При добавлении карты не все данные были заполнены (14.12.2022) +[FATAL] Неизвестная ошибка: Index 116 out of bounds for length 116 (14.12.2022) +[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022) +[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022) +[FATAL] Неизвестная ошибка: Index 116 out of bounds for length 116 (14.12.2022) diff --git a/Infos.log b/Infos.log new file mode 100644 index 0000000..d50f3b4 --- /dev/null +++ b/Infos.log @@ -0,0 +1,78 @@ +[INFO ] Переход на карту fsdfws (12.12.2022) +[INFO ] Добавлена карта: fsdfws (12.12.2022) +[INFO ] Переход на карту fsdfws (12.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022) +[INFO ] Переход на карту dsafwsdf (12.12.2022) +[INFO ] Переход на карту dsafwsdf (12.12.2022) +[INFO ] Объект на позиции32удален (12.12.2022) +[INFO ] Новый объект добавлен (12.12.2022) +[INFO ] Сохранение карты в файл: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022) +[INFO ] Переход на карту frrfwe (12.12.2022) +[INFO ] Добавлена карта: frrfwe (12.12.2022) +[INFO ] Переход на карту frrfwe (12.12.2022) +[INFO ] Добавлена карта: frrfwe (12.12.2022) +[INFO ] Переход на карту e2rew (12.12.2022) +[INFO ] Добавлена карта: e2rew (12.12.2022) +[INFO ] Новый объект добавлен (12.12.2022) +[INFO ] Переход на карту e2rew (12.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022) +[INFO ] Переход на карту dsafwsdf (12.12.2022) +[INFO ] Переход на карту dsafwsdf (12.12.2022) +[INFO ] Объект на позиции103удален (12.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Переход на карту 3e32r3 (14.12.2022) +[INFO ] Добавлена карта: 3e32r3 (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Переход на карту ewefg (14.12.2022) +[INFO ] Добавлена карта: ewefg (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Переход на карту wwrr (14.12.2022) +[INFO ] Добавлена карта: wwrr (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Переход на карту rwwa (14.12.2022) +[INFO ] Добавлена карта: rwwa (14.12.2022) +[INFO ] Переход на карту rwwa (14.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Новый объект добавлен (14.12.2022) +[INFO ] Сохранение карты в файл: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Переход на карту ewrfwef (14.12.2022) +[INFO ] Добавлена карта: ewrfwef (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Объект на позиции116удален (14.12.2022) +[INFO ] Переход на карту dsafwsdf (14.12.2022) +[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022) +[INFO ] Объект на позиции116удален (14.12.2022) diff --git a/src/FileDataFormatException.java b/src/FileDataFormatException.java new file mode 100644 index 0000000..7add04a --- /dev/null +++ b/src/FileDataFormatException.java @@ -0,0 +1,15 @@ +import java.io.IOException; + +public class FileDataFormatException extends IOException { + public FileDataFormatException(){ + } + public FileDataFormatException(String message){ + super(message); + } + public FileDataFormatException(String message,Throwable exception){ + super(message,exception); + } + protected FileDataFormatException(Throwable exception){ + super(exception); + } +} diff --git a/src/FormMapWithSetWarships.form b/src/FormMapWithSetWarships.form index 0904dc6..8b807c9 100644 --- a/src/FormMapWithSetWarships.form +++ b/src/FormMapWithSetWarships.form @@ -11,14 +11,18 @@ - + + + - + + + diff --git a/src/FormMapWithSetWarships.java b/src/FormMapWithSetWarships.java index f0cfbca..ee495de 100644 --- a/src/FormMapWithSetWarships.java +++ b/src/FormMapWithSetWarships.java @@ -7,6 +7,7 @@ import java.io.IOException; import java.util.HashMap; import java.util.LinkedList; import java.util.Optional; +import org.apache.logging.log4j.Logger; public class FormMapWithSetWarships extends JFrame{ @@ -38,12 +39,18 @@ public class FormMapWithSetWarships extends JFrame{ put("Вторая карта",new SecondMap()); } }; + private Logger logger; + + public FormMapWithSetWarships(Logger logger){ + this(); + this.logger=logger; + } public FormMapWithSetWarships(){ setTitle("Военный корабль"); setContentPane(MainPanel); setResizable(false); - setSize(1000,685); + setSize(1150,690); ShowWindow(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); @@ -94,13 +101,12 @@ public class FormMapWithSetWarships extends JFrame{ dialog.showSaveDialog(this); try { - if (_mapsCollection.SaveData(dialog.getSelectedFile().getAbsolutePath())) { - JOptionPane.showMessageDialog(this, "Сохранение прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(this, "Не сохранилось", "Итог", JOptionPane.ERROR_MESSAGE); - } - } catch (IOException ex) { - ex.printStackTrace(); + _mapsCollection.SaveData(dialog.getSelectedFile().getAbsolutePath()); + logger.info("Сохранение всех карт в файл: "+dialog.getSelectedFile().getAbsolutePath()); + JOptionPane.showMessageDialog(this, "Сохранение всех карт прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception ex) { + logger.error("Ошибка сохранения всех карт в файл: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка сохранения всех карт: "+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE); } }); fileMenu.add(SaveMenuItem); @@ -112,14 +118,13 @@ public class FormMapWithSetWarships extends JFrame{ dialog.showOpenDialog(this); try { - if (_mapsCollection.LoadData(dialog.getSelectedFile().getAbsolutePath())) { - ReloadMaps(); - JOptionPane.showMessageDialog(this, "Загрузка прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(this, "Не загрузилось", "Итог", JOptionPane.ERROR_MESSAGE); - } - } catch (IOException ex) { - ex.printStackTrace(); + _mapsCollection.LoadData(dialog.getSelectedFile().getAbsolutePath()); + ReloadMaps(); + logger.info("Загрузка всех карт из файла: "+dialog.getSelectedFile().getAbsolutePath()); + JOptionPane.showMessageDialog(this, "Загрузка всех карт прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception ex) { + logger.error("Ошибка загрузки всех карт из файла: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка загрузки всех карт"+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE); } }); fileMenu.add(LoadMenuItem); @@ -131,13 +136,12 @@ public class FormMapWithSetWarships extends JFrame{ dialog.showSaveDialog(this); try { - if (_mapsCollection.SaveMap((String) Optional.ofNullable(ListBoxMaps.getSelectedValue()).orElse(""), dialog.getSelectedFile().getAbsolutePath())) { - JOptionPane.showMessageDialog(this, "Сохранение прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(this, "Не сохранилось", "Итог", JOptionPane.ERROR_MESSAGE); - } - } catch (IOException ex) { - ex.printStackTrace(); + _mapsCollection.SaveMap((String) Optional.ofNullable(ListBoxMaps.getSelectedValue()).orElse(""), dialog.getSelectedFile().getAbsolutePath()); + logger.info("Сохранение карты в файл: "+dialog.getSelectedFile().getAbsolutePath()); + JOptionPane.showMessageDialog(this, "Сохранение карты прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception ex) { + logger.error("Ошибка сохранения карты в файл: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка сохранения карты: "+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE); } }); fileMenu.add(SaveMapMenuItem); @@ -149,14 +153,13 @@ public class FormMapWithSetWarships extends JFrame{ dialog.showOpenDialog(this); try { - if (_mapsCollection.LoadMap(dialog.getSelectedFile().getAbsolutePath())) { - ReloadMaps(); - JOptionPane.showMessageDialog(this, "Загрузка прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); - } else { - JOptionPane.showMessageDialog(this, "Не загрузилось", "Итог", JOptionPane.ERROR_MESSAGE); - } - } catch (IOException ex) { - ex.printStackTrace(); + _mapsCollection.LoadMap(dialog.getSelectedFile().getAbsolutePath()); + ReloadMaps(); + logger.info("Загрузка карты из файла: "+dialog.getSelectedFile().getAbsolutePath()); + JOptionPane.showMessageDialog(this, "Загрузка карты прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE); + } catch (Exception ex) { + logger.error("Ошибка загрузки карты из файла: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка загрузки карты"+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE); } }); fileMenu.add(LoadMapMenuItem); @@ -168,6 +171,7 @@ public class FormMapWithSetWarships extends JFrame{ return; bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet(); repaint(); + logger.info("Переход на карту "+ListBoxMaps.getSelectedValue()); }); DeleteMapButton.addActionListener(e -> { @@ -179,6 +183,7 @@ public class FormMapWithSetWarships extends JFrame{ "Удаление",JOptionPane.YES_NO_OPTION)==0) { _mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString()); + logger.info("Карта "+ListBoxMaps.getSelectedValue()+" удалена"); ReloadMaps(); } }); @@ -186,16 +191,19 @@ public class FormMapWithSetWarships extends JFrame{ CreateMapButton.addActionListener(e -> { if (СomboBoxSelectorMap.getSelectedIndex() == -1 || TextFieldMap.getText()==null || TextFieldMap.getText().equals("")) { + logger.warn("При добавлении карты не все данные были заполнены"); JOptionPane.showMessageDialog(this,"Не все данные заполнены","Ошибка",JOptionPane.ERROR_MESSAGE); return; } if (!_mapsDict.containsKey(СomboBoxSelectorMap.getSelectedItem())) { + logger.warn("Карты не существует"); JOptionPane.showMessageDialog(this,"Нет такой карты","Ошибка",JOptionPane.ERROR_MESSAGE); return; } _mapsCollection.AddMap(TextFieldMap.getText(), _mapsDict.get(СomboBoxSelectorMap.getSelectedItem().toString())); ReloadMaps(); + logger.info("Добавлена карта: "+TextFieldMap.getText()); }); ButtonShowOnMap.addActionListener(e -> { @@ -224,14 +232,24 @@ public class FormMapWithSetWarships extends JFrame{ FormWarshipConfig dialog=new FormWarshipConfig(); dialog.addListener(obj -> { if (obj!=null) { - DrawingObjectWarship warship = new DrawingObjectWarship(obj); + try { + DrawingObjectWarship warship = new DrawingObjectWarship(obj); - if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).plus(warship)>=0) { - JOptionPane.showMessageDialog(this, "Объект добавлен", "Успех", JOptionPane.INFORMATION_MESSAGE); - bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet(); - repaint(); - } else { - JOptionPane.showMessageDialog(this, "Не удалось добавить объект", "Ошибка",JOptionPane.INFORMATION_MESSAGE); + if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).plus(warship) >= 0) { + JOptionPane.showMessageDialog(this, "Объект добавлен", "Успех", JOptionPane.INFORMATION_MESSAGE); + bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet(); + repaint(); + logger.info("Новый объект добавлен"); + } else { + logger.warn("Не удалось добавить объект"); + JOptionPane.showMessageDialog(this, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); + } + }catch (StorageOverflowException ex){ + logger.error("Хранилище переполнено: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка. Хранилище переполнено: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); + }catch (Exception ex){ + logger.fatal("Неизвестная ошибка: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); } } }); @@ -252,14 +270,23 @@ public class FormMapWithSetWarships extends JFrame{ if (result!=0) return; int pos = Integer.parseInt(txt); - if(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).minus(pos)!=null){ - JOptionPane.showMessageDialog(this, "Объект удален", "Успех", JOptionPane.INFORMATION_MESSAGE); - bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet(); - repaint(); - } - else - { - JOptionPane.showMessageDialog(this,"Не удалось удалить объект","Ошибка",JOptionPane.INFORMATION_MESSAGE); + + try { + if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).minus(pos) != null) { + JOptionPane.showMessageDialog(this, "Объект удален", "Успех", JOptionPane.INFORMATION_MESSAGE); + bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet(); + repaint(); + logger.info("Объект на позиции"+pos+"удален"); + } else { + logger.warn("Не удалось удалить объект на позиции"+pos); + JOptionPane.showMessageDialog(this, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); + } + } catch(WarshipNotFoundException ex){ + logger.error("Ошибка удаления: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Ошибка удаления: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); + }catch (Exception ex){ + logger.fatal("Неизвестная ошибка: "+ex.getMessage()); + JOptionPane.showMessageDialog(this, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); } }); diff --git a/src/Main.java b/src/Main.java index 6546bf6..2c8d4a1 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,5 +1,7 @@ +import org.apache.logging.log4j.*; + public class Main { public static void main(String[] args) { - new FormMapWithSetWarships(); + new FormMapWithSetWarships(LogManager.getLogger(Main.class)); } } \ No newline at end of file diff --git a/src/MapsCollection.java b/src/MapsCollection.java index b8e1783..3cbb6b5 100644 --- a/src/MapsCollection.java +++ b/src/MapsCollection.java @@ -50,7 +50,7 @@ public class MapsCollection { } @SuppressWarnings("ResultOfMethodCallIgnored") - public boolean SaveData(String filename) throws IOException { + public void SaveData(String filename) throws IOException { File file = new File(filename); @@ -66,21 +66,20 @@ public class MapsCollection { writer.println(String.format("%s%c%s", storage.getKey(), separatorDict, storage.getValue().GetData(separatorDict, separatorData))); } } - return true; } - public boolean LoadData(String filename) throws IOException { + public void LoadData(String filename) throws IOException { File file = new File(filename); if (!file.exists()) - return false; + throw new FileNotFoundException("Файл не найден"); try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String currentLine = reader.readLine(); if (currentLine == null || !currentLine.contains("MapsCollection")) - return false; + throw new FileDataFormatException("Формат данных не верный"); _mapStorages.clear(); @@ -95,11 +94,10 @@ public class MapsCollection { _mapStorages.get(elements[0]).LoadData(elements[2].split(separatorData + "\n?")); } } - return true; } @SuppressWarnings("ResultOfMethodCallIgnored") - public boolean SaveMap(String mapName, String filename) throws IOException { + public void SaveMap(String mapName, String filename) throws IOException { File file = new File(filename); if (file.exists()) @@ -110,7 +108,7 @@ public class MapsCollection { MapWithSetWarshipsGeneric map = _mapStorages.getOrDefault(mapName, null); if (map == null) - return false; + throw new IndexOutOfBoundsException(); try (PrintWriter writer = new PrintWriter(file)) { writer.println("Map"); @@ -120,20 +118,19 @@ public class MapsCollection { writer.println(warship.GetInfo()); } } - return true; } - public boolean LoadMap(String filename) throws IOException { + public void LoadMap(String filename) throws IOException { File file = new File(filename); if (!file.exists()) - return false; + throw new FileNotFoundException("Файл не найден"); try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String currentLine = reader.readLine(); if (currentLine == null || !currentLine.contains("Map")) - return false; + throw new FileDataFormatException("Формат данных не верный"); String mapName = reader.readLine(); @@ -141,7 +138,7 @@ public class MapsCollection { if (_mapStorages.containsKey(mapName)) { map = _mapStorages.get(mapName); if (!map.GetMap().getClass().getSimpleName().equals(reader.readLine())) { - return false; + throw new FileDataFormatException("Формат данных не верный"); } map._setWarship.Clear(); } else { @@ -156,7 +153,6 @@ public class MapsCollection { map._setWarship.Insert((DrawingObjectWarship) DrawingObjectWarship.Create(currentLine)); } } - return true; } } diff --git a/src/SetWarshipsGeneric.java b/src/SetWarshipsGeneric.java index 3a1d245..e863172 100644 --- a/src/SetWarshipsGeneric.java +++ b/src/SetWarshipsGeneric.java @@ -23,8 +23,8 @@ public class SetWarshipsGeneric implements Iterable{ public int Insert(T warship) { - if (_places.size()+1>=_maxCount) - return -1; + if (Count()>=_maxCount) + throw new StorageOverflowException(_maxCount); _places.add(0,warship); return 0; } @@ -32,9 +32,7 @@ public class SetWarshipsGeneric implements Iterable{ public int Insert(T warship, int position) { if (position>=_maxCount||position<0) - return -1; - if (_places.size()+1>=_maxCount) - return -1; + throw new StorageOverflowException(_maxCount); _places.add(position,warship); return position; } @@ -44,6 +42,8 @@ public class SetWarshipsGeneric implements Iterable{ if (position>=_maxCount||position<0) return null; T deleted=_places.get(position); + if (deleted==null) + throw new WarshipNotFoundException(position); _places.remove(position); return deleted; } diff --git a/src/StorageOverflowException.java b/src/StorageOverflowException.java new file mode 100644 index 0000000..781e800 --- /dev/null +++ b/src/StorageOverflowException.java @@ -0,0 +1,16 @@ +public class StorageOverflowException extends RuntimeException{ + public StorageOverflowException(){ + } + public StorageOverflowException(String message){ + super(message); + } + public StorageOverflowException(String message,Throwable exception){ + super(message,exception); + } + protected StorageOverflowException(Throwable exception){ + super(exception); + } + public StorageOverflowException(int count){ + super("Превышено допустимое количество в хранилище: "+count); + } +} diff --git a/src/WarshipNotFoundException.java b/src/WarshipNotFoundException.java new file mode 100644 index 0000000..5fd2070 --- /dev/null +++ b/src/WarshipNotFoundException.java @@ -0,0 +1,16 @@ +public class WarshipNotFoundException extends RuntimeException{ + public WarshipNotFoundException(){ + } + public WarshipNotFoundException(String message){ + super(message); + } + public WarshipNotFoundException(String message,Throwable exception){ + super(message,exception); + } + public WarshipNotFoundException(Throwable exception){ + super(exception); + } + protected WarshipNotFoundException(int pos){ + super("Корабль по позиции "+pos+" не найден"); + } +} diff --git a/src/log4j2.xml b/src/log4j2.xml new file mode 100644 index 0000000..7e04438 --- /dev/null +++ b/src/log4j2.xml @@ -0,0 +1,27 @@ + + + + + + + [%-5level] %msg (%d{dd.MM.yyyy})%n + + + + + + + + [%-5level] %msg (%d{dd.MM.yyyy})%n + + + + + + + + + + + +