diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 9328b4bb..4d7dac80 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; + str.length(); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index acc0aeff..327ea7b4 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -11,6 +11,21 @@ public static void main(String[] args) { } static String getSeason(int monthNumber) { - return "";//todo напишите здесь свою корректную реализацию этого метода, вместо существующей + switch (monthNumber) { + case 1: return "зима"; + case 2: return "зима"; + case 3: return "весна"; + case 4: return "весна"; + case 5: return "весна"; + case 6: return "лето"; + case 7: return "лето"; + case 8: return "лето"; + case 9: return "осень"; + case 10: return "осень"; + case 11: return "осень"; + case 12: return "зима"; + default: + throw new IllegalArgumentException("monthNumber "+monthNumber+" is invalid, month number should be between 1..12"); + } } } \ 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..4ea920e5 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,5 +1,7 @@ package com.example.task03; +import java.io.IOException; + public class Task03Main { public static void main(String[] args) { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат @@ -9,8 +11,7 @@ public static void main(String[] args) { */ } - //todo напишите здесь свою корректную реализацию задания - public static void throwCheckedException() { - + public static void throwCheckedException() throws IOException { + throw new IOException(""); } } \ 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..d2c19a60 --- /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..64ec47d8 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -11,7 +11,34 @@ public static void main(String[] args) { } static String getSeason(int monthNumber) { - return "";//todo напишите здесь свою корректную реализацию этого метода, вместо существующей + switch (monthNumber) { + case 1: + return "зима"; + case 2: + return "зима"; + case 3: + return "весна"; + case 4: + return "весна"; + case 5: + return "весна"; + case 6: + return "лето"; + case 7: + return "лето"; + case 8: + return "лето"; + case 9: + return "осень"; + case 10: + return "осень"; + case 11: + return "осень"; + case 12: + return "зима"; + default: + throw new MyException("monthNumber "+monthNumber+" is invalid, month number should be between 1..12"); + } } } \ 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..6880ca94 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -1,15 +1,19 @@ package com.example.task05; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; +import java.io.*; 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.println("файл \"" + pathToFile + "\" не найден"); + } catch (IOException e) { + System.out.println("произошла ошибка при чтении файла \"" + 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..ff23755e 100644 --- a/task06/src/com/example/task06/Task06Main.java +++ b/task06/src/com/example/task06/Task06Main.java @@ -2,15 +2,18 @@ public class Task06Main { public static void main(String[] args) { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - /* new Task06Main().printMethodName(); - */ } void printMethodName() { - //todo напишите здесь свою корректную реализацию этого метода, вместо существующей + // будет работать вне зависимости от глубины вызовов методов программы + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); // получаем стектрейс всех методов вызывавшихся при работе программы + for (StackTraceElement element : stackTrace) { // сча будем перебирать и искать нужный + if (!element.getMethodName().equals("printMethodName") && + !element.getMethodName().equals("getStackTrace")) { + System.out.print(element.getMethodName()); + break; + } + } } - } \ 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..eb19748d 100644 --- a/task07/src/com/example/task07/Task07Main.java +++ b/task07/src/com/example/task07/Task07Main.java @@ -1,5 +1,7 @@ package com.example.task07; +import org.junit.Test; + public class Task07Main { public static final String CHECKED = "checked"; @@ -15,10 +17,13 @@ public String getExceptionType() { //todo напишите здесь свою корректную реализацию этого метода, вместо существующей try { processor.process(); //todo вы можете заменить реализацию этого метода для ручного дебага - } catch (Exception e) { - + } catch (RuntimeException e) { + return UNCHECKED; + } + catch (Exception e) { + return CHECKED; } - return null; + return NONE; } } \ No newline at end of file