diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 9328b4bb..3caa4e27 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -4,12 +4,13 @@ public class Task01Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* + codeWithNPE(); - */ + } static void codeWithNPE() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + String str = null; + str.length(); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index acc0aeff..f6dd7fa8 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -5,12 +5,19 @@ public class Task02Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* + System.out.println(getSeason(-5)); - */ + } 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 "зима"; + if (monthNumber <= 5) return "весна"; + if (monthNumber <= 8) return "лето"; + 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..b70b99f8 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,15 +2,15 @@ public class Task03Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* - throwCheckedException(); - */ + try { + throwCheckedException(); + } catch (Exception e) { + System.out.println("Поймано исключение: " + e.getMessage()); + } } //todo напишите здесь свою корректную реализацию задания - public static void throwCheckedException() { - + public static void throwCheckedException() throws Exception { + throw new Exception("checkedException"); } } \ 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..40fa5efd --- /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); + } +} diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index f6eae8d8..4ca8ee47 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -5,13 +5,20 @@ public class Task04Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* + System.out.println(getSeason(-5)); - */ + } 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 "зима"; + if (monthNumber <= 5) return "весна"; + if (monthNumber <= 8) return "лето"; + 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..4ed0081d 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -3,13 +3,20 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; +import java.io.FileNotFoundException; 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.println(s); + } catch (FileNotFoundException e) { + System.out.printf("файл \"%s\" не найден\n", pathToFile); + } catch (IOException e) { + System.out.printf("произошла ошибка при чтении файла \"%s\"\n", 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..987055ad 100644 --- a/task06/src/com/example/task06/Task06Main.java +++ b/task06/src/com/example/task06/Task06Main.java @@ -4,13 +4,15 @@ public class Task06Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* + new Task06Main().printMethodName(); - */ + } void printMethodName() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();// Получаем стек вызовов текущего потока + + System.out.print(stackTrace[2].getMethodName());// stackTrace[2] — метод, который вызвал printMethodName } } \ No newline at end of file diff --git a/task07/README.md b/task07/README.md index 1c9158ef..6a281059 100644 --- a/task07/README.md +++ b/task07/README.md @@ -1,8 +1,8 @@ -# Задание 07 Тип исключения +````# Задание 07 Тип исключения Измените метод ```java public String getExceptionType() ``` так, чтобы он возвращал тип брошенного в методе `process()` исключения: -`"checked"` или `"unchecked"`. Или `"none"` если`process()` не бросит никакого исключения. +`"checked"` или `"unchecked"`. Или `"none"` если`process()` не бросит никакого исключения. ```` diff --git a/task07/src/com/example/task07/Task07Main.java b/task07/src/com/example/task07/Task07Main.java index 5dbaf334..10c06b54 100644 --- a/task07/src/com/example/task07/Task07Main.java +++ b/task07/src/com/example/task07/Task07Main.java @@ -7,6 +7,15 @@ public class Task07Main { public static final String NONE = "none"; public static void main(String[] args) { + Task07Main main = new Task07Main(); + main.processor = new Processor() { + @Override + public Object process() throws Exception { + throw new RuntimeException("непроверяемое"); + } + + }; + System.out.println(main.getExceptionType()); } public Processor processor; @@ -15,10 +24,12 @@ public String getExceptionType() { //todo напишите здесь свою корректную реализацию этого метода, вместо существующей try { processor.process(); //todo вы можете заменить реализацию этого метода для ручного дебага + } catch (RuntimeException e) { + return UNCHECKED; } catch (Exception e) { - + return CHECKED; } - return null; + return NONE; } } \ No newline at end of file