diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 9328b4bb..b3a953dd 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,14 +2,11 @@ public class Task01Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* codeWithNPE(); - */ } static void codeWithNPE() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + Object nullRef = null; + nullRef.toString(); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index acc0aeff..ec8796af 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,16 +1,25 @@ package com.example.task02; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; + public class Task02Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* - System.out.println(getSeason(-5)); - */ + System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8)); + + 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"); + + return switch (monthNumber) { + case 12, 1, 2 -> "зима"; + case 3, 4, 5 -> "весна"; + case 6, 7, 8 -> "лето"; + default -> "осень"; + }; } } \ 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..9fdc1f0b 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,16 +1,16 @@ package com.example.task03; +import java.io.IOException; public class Task03Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* - throwCheckedException(); - */ + try{ + throwCheckedException(); + } catch(IOException e){ + System.out.println(e.getMessage()); + } } - //todo напишите здесь свою корректную реализацию задания - public static void throwCheckedException() { - + public static void throwCheckedException() throws IOException{ + throw new IOException("checked"); } } \ 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..6b12f470 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,17 +1,34 @@ package com.example.task04; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; + public class Task04Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* + System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8)); + 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"); + + return switch (monthNumber) { + case 12, 1, 2 -> "зима"; + case 3, 4, 5 -> "весна"; + case 6, 7, 8 -> "лето"; + default -> "осень"; + }; } + public static class MyException extends IllegalArgumentException { + public MyException(String message){ + super(message); + } + public MyException(String message, Throwable cause){ + super(message,cause); + } + } } \ 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..859e95a2 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -1,21 +1,29 @@ 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 { + 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) { + throw new RuntimeException("файл \"" + pathToFile + "\" не найден"); + } + catch (IOException e) { + throw new RuntimeException("произошла ошибка при чтении файла \"" + pathToFile + "\""); + } } public static String readFile(String pathToFile) throws IOException { FileReader fileReader = new FileReader(pathToFile); BufferedReader bufferedReader = new BufferedReader(fileReader); - StringBuilder stringBuilder = new StringBuilder(); String currentLine; while ((currentLine = bufferedReader.readLine()) != null) { @@ -23,7 +31,6 @@ public static String readFile(String pathToFile) throws IOException { stringBuilder.append("\n"); } bufferedReader.close(); - return stringBuilder.toString(); } -} \ No newline at end of file +} diff --git a/task06/src/com/example/task06/Task06Main.java b/task06/src/com/example/task06/Task06Main.java index ebb26d82..5c8624e0 100644 --- a/task06/src/com/example/task06/Task06Main.java +++ b/task06/src/com/example/task06/Task06Main.java @@ -2,15 +2,12 @@ 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()); } } \ 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..feb347dc 100644 --- a/task07/src/com/example/task07/Task07Main.java +++ b/task07/src/com/example/task07/Task07Main.java @@ -12,13 +12,16 @@ public static void main(String[] args) { public Processor processor; public String getExceptionType() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей try { - processor.process(); //todo вы можете заменить реализацию этого метода для ручного дебага + processor.process(); + return NONE; + } catch (Error e) { + return UNCHECKED; + } catch (RuntimeException e) { + return UNCHECKED; } catch (Exception e) { - + return CHECKED; } - return null; } } \ No newline at end of file