diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 9328b4bb..8fc98ac6 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -10,6 +10,7 @@ public static void main(String[] args) { } static void codeWithNPE() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + String str = null; + int length = str.length(); // Попытка вызвать метод у null-объекта } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index acc0aeff..e5cf5e4e 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -11,6 +11,20 @@ public static void main(String[] args) { } static String getSeason(int monthNumber) { - return "";//todo напишите здесь свою корректную реализацию этого метода, вместо существующей + if (monthNumber < 1 || monthNumber > 12) { + throw new IllegalArgumentException( + "monthNumber " + monthNumber + " is invalid, month number should be between 1..12" + ); + } + + if (monthNumber == 12 || monthNumber <= 2) { + return "зима"; + } else if (monthNumber >= 3 && monthNumber <= 5) { + return "весна"; + } else if (monthNumber >= 6 && monthNumber <= 8) { + return "лето"; + } else { + return "осень"; + } } } \ 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..60b007eb 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("This is a 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..ff170319 --- /dev/null +++ b/task04/src/com/example/task04/MyException.java @@ -0,0 +1,7 @@ +package com.example.task04; + +public class MyException extends IllegalArgumentException { + public MyException(String message) { + super(message); + } +} \ 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..bb85362b 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -11,7 +11,20 @@ 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" + ); + } + if (monthNumber == 12 || monthNumber <= 2) { + return "зима"; + } else if (monthNumber >= 3 && monthNumber <= 5) { + return "весна"; + } else if (monthNumber >= 6 && monthNumber <= 8) { + return "лето"; + } else { + return "осень"; + } + } } \ 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..c8e29615 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -2,14 +2,21 @@ import java.io.BufferedReader; import java.io.FileReader; +import java.io.FileNotFoundException; import java.io.IOException; public class Task05Main { - public static void main(String[] args) throws IOException { + public static void main(String[] args) { String pathToFile = args[0]; // "/home/user/file.txt" - String s = readFile(pathToFile); - System.out.println(s); + try { + String s = readFile(pathToFile); + System.out.print(s); + } catch (FileNotFoundException e) { + System.out.print("файл \"" + pathToFile + "\" не найден\n"); + } catch (IOException e) { + System.out.print("произошла ошибка при чтении файла \"" + 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..ba37468e 100644 --- a/task06/src/com/example/task06/Task06Main.java +++ b/task06/src/com/example/task06/Task06Main.java @@ -10,7 +10,15 @@ public static void main(String[] args) { } void printMethodName() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей - } + // Получаем стек вызовов + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + + // Элемент с индексом 2 содержит информацию о методе, который вызвал текущий метод + // Индекс 0: getStackTrace + // Индекс 1: текущий метод (printMethodName) + // Индекс 2: метод, который вызвал printMethodName + String callerMethodName = stackTrace[2].getMethodName(); + System.out.print(callerMethodName); + } } \ No newline at end of file diff --git a/task07/src/com/example/task07/Task07Main.java b/task07/src/com/example/task07/Task07Main.java index 5dbaf334..d5e5106f 100644 --- a/task07/src/com/example/task07/Task07Main.java +++ b/task07/src/com/example/task07/Task07Main.java @@ -12,13 +12,13 @@ public static void main(String[] args) { public Processor processor; public String getExceptionType() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей try { - processor.process(); //todo вы можете заменить реализацию этого метода для ручного дебага + processor.process(); + return NONE; + } catch (RuntimeException e) { + return UNCHECKED; } catch (Exception e) { - + return CHECKED; } - return null; } - } \ No newline at end of file