From 2d82f3000d2b315b928aace9bb2fbc3412892d03 Mon Sep 17 00:00:00 2001 From: lenadekart Date: Fri, 14 Mar 2025 20:58:20 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B8=D0=BC=D0=BE=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=BA=D0=BE=20=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4.=20=D0=97?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=206.1=20-=206.7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Task01Main.java | 13 ++++---- task02/src/com/example/task02/Task02Main.java | 26 ++++++++++++++-- task03/src/com/example/task03/Task03Main.java | 4 +-- .../src/com/example/task04/MyException.java | 20 +++++++++++++ task04/src/com/example/task04/Task04Main.java | 30 ++++++++++++++++++- task05/src/com/example/task05/Task05Main.java | 16 +++++++--- task06/src/com/example/task06/Task06Main.java | 6 +++- task07/src/com/example/task07/Processor.java | 3 +- task07/src/com/example/task07/Task07Main.java | 17 +++++++---- 9 files changed, 110 insertions(+), 25 deletions(-) create mode 100644 task04/src/com/example/task04/MyException.java diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 9328b4bb..3c84728d 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,14 +2,15 @@ public class Task01Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* - codeWithNPE(); - */ +// //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат +// // например вот так: +// /* +// codeWithNPE(); +// */ } static void codeWithNPE() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + Object nullString = null; + nullString.toString(); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index acc0aeff..31469ded 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,16 +1,36 @@ package com.example.task02; +import java.util.HashMap; +import java.util.Map; public class Task02Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* System.out.println(getSeason(-5)); - */ } static String getSeason(int monthNumber) { - return "";//todo напишите здесь свою корректную реализацию этого метода, вместо существующей + Map dictionary = new HashMap<>(); + dictionary.put("зима", new int[] {12, 1, 2}); + dictionary.put("весна", new int[] {3, 4, 5}); + dictionary.put("лето", new int[] {6, 7, 8}); + dictionary.put("осень", new int[] {9, 10,11} ); + + for (String key : dictionary.keySet()){ + if (inArray(dictionary.get((key)), monthNumber)){ + return key; + } + } + throw new IllegalArgumentException("monthNumber "+monthNumber+" is invalid, month number should be between 1..12"); + } + + public static boolean inArray(int[] array, int toFind) { + for (int element : array) { + if (element == toFind) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 47c4c416..34d3619b 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -10,7 +10,7 @@ public static void main(String[] args) { } //todo напишите здесь свою корректную реализацию задания - public static void throwCheckedException() { - + public static void throwCheckedException() throws Exception{ + throw new Exception("Checked Exception"); } } \ No newline at end of file diff --git a/task04/src/com/example/task04/MyException.java b/task04/src/com/example/task04/MyException.java new file mode 100644 index 00000000..100703bd --- /dev/null +++ b/task04/src/com/example/task04/MyException.java @@ -0,0 +1,20 @@ +package com.example.task04; + +public class MyException extends IllegalArgumentException { + + public MyException() { + super(); + } + + public MyException(String message) { + super(message); + } + + public MyException(String message, Throwable cause) { + super(message, cause); + } + + public MyException(Throwable cause) { + super(cause); + } +} \ No newline at end of file diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index f6eae8d8..95809274 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,5 +1,8 @@ package com.example.task04; +import java.util.HashMap; +import java.util.Map; + public class Task04Main { public static void main(String[] args) { @@ -11,7 +14,32 @@ public static void main(String[] args) { } static String getSeason(int monthNumber) { - return "";//todo напишите здесь свою корректную реализацию этого метода, вместо существующей + if (monthNumber < 1 || monthNumber > 12) + throw new MyException("monthNumber " + monthNumber + " is invalid, month number should be between 1..12"); + + Map dictionary = new HashMap<>(); + dictionary.put("зима", new int[] {12, 1, 2}); + dictionary.put("весна", new int[] {3, 4, 5}); + dictionary.put("лето", new int[] {6, 7, 8}); + dictionary.put("осень", new int[] {9, 10,11} ); + + String result = ""; + for (String key : dictionary.keySet()){ + if (inArray(dictionary.get((key)), monthNumber)){ + result = key; + break; + } + } + return result; + } + + public static boolean inArray(int[] array, int toFind) { + for (int element : array) { + if (element == toFind) { + return true; + } + } + return false; } } \ No newline at end of file diff --git a/task05/src/com/example/task05/Task05Main.java b/task05/src/com/example/task05/Task05Main.java index 8b4f3202..d18ad7cc 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -1,15 +1,23 @@ package com.example.task05; import java.io.BufferedReader; +import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Task05Main { - public static void main(String[] args) throws IOException { - String pathToFile = args[0]; // "/home/user/file.txt" + public static void main(String[] args) { + String pathToFile = args[0]; - String s = readFile(pathToFile); - System.out.println(s); + try { + String s = readFile(pathToFile); + System.out.println(s); + } catch (FileNotFoundException e) { + System.out.printf("файл \"%s\" не найден\n", pathToFile); + } catch (IOException e){ + System.out.printf("произошла ошибка при чтении файла %s", pathToFile); + + } } public static String readFile(String pathToFile) throws IOException { diff --git a/task06/src/com/example/task06/Task06Main.java b/task06/src/com/example/task06/Task06Main.java index ebb26d82..a6dfab8f 100644 --- a/task06/src/com/example/task06/Task06Main.java +++ b/task06/src/com/example/task06/Task06Main.java @@ -10,7 +10,11 @@ public static void main(String[] args) { } void printMethodName() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + try { + throw new RuntimeException(); + } catch (RuntimeException e) { + System.out.println(e.getStackTrace()[1].getMethodName()); + } } } \ No newline at end of file diff --git a/task07/src/com/example/task07/Processor.java b/task07/src/com/example/task07/Processor.java index 7649d783..07bf19ec 100644 --- a/task07/src/com/example/task07/Processor.java +++ b/task07/src/com/example/task07/Processor.java @@ -3,8 +3,7 @@ public class Processor { public Object process() throws Exception { - //todo вы можете заменить реализацию этого метода для ручного дебага - return null; + throw new Exception(); } } diff --git a/task07/src/com/example/task07/Task07Main.java b/task07/src/com/example/task07/Task07Main.java index 5dbaf334..8185b790 100644 --- a/task07/src/com/example/task07/Task07Main.java +++ b/task07/src/com/example/task07/Task07Main.java @@ -6,19 +6,24 @@ public class Task07Main { public static final String UNCHECKED = "unchecked"; public static final String NONE = "none"; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + Tests tests = new Tests(); + tests.testCountExceptions_checked(); + tests.testCountExceptions_none(); + tests.testCountExceptions_unchecked(); } public Processor processor; public String getExceptionType() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей try { - processor.process(); //todo вы можете заменить реализацию этого метода для ручного дебага - } catch (Exception e) { - + processor.process(); + return NONE; + } catch (Error | RuntimeException e) { + return UNCHECKED; + }catch (Exception e) { + return CHECKED; } - return null; } } \ No newline at end of file