Rozdział 11 - Wyjątki - Pytania

  1. Do czego służą wyjątki?
  2. Co to jest stack trace?
  3. W której z metod wymienionych w poniższym stack trace rzucony został wyjątek?
    Exception in thread "main" java.lang.IllegalArgumentException at Pytania.innaMetoda(Pytania.java:13) at Pytania.pewnaMetoda(Pytania.java:9) at Pytania.main(Pytania.java:5)
  4. Jak w języku Java obsługuje się wyjątki?
  5. Czy musimy stosować obsługę wyjątków jeżeli metoda, z której chcemy skorzystać, może rzucić wyjątek?
  6. Do czego służy sekcja finally i czy jest wymagana?
  7. Jak rzuca się wyjątki?
  8. Do czego służy słowo kluczowe throws?
  9. Jaką regułę muszą spełniać klasy, aby były klasami wyjątków?
  10. Co trzeba zrobić, aby pobrać komunikat skojarzony z wyjątkiem?
  11. Czym różnią się wyjątki Checked oraz Unchecked?
  12. Jakiego rodzaju (Unchecked / Checked) są poniższe wyjątki (musisz zajrzeć do dokumentacji Biblioteki Standardowej Java – Java Doc)?
    1. EOFException
    2. ClassCastException
    3. DateTimeParseException
    4. SQLException
  13. Czy wyjątek NullPointerException to wyjątek rodzaju Checked czy Unchecked?
  14. Co to jest silent catch (połykanie wyjątków)?
  15. Do czego służy try-with-resources i jak się tego mechanizmu używa?
  16. Czy poniższy kod jest poprawny?
    class MojWyjatekException {
    
    }
    
    public class Pytania {
      public static void main(String[] args) {
        try {
          pewnaMetoda();
        } catch (MojWyjatekException e) {
          System.out.println("Wystapil blad.");
        }
      }
    
      public static void pewnaMetoda() {
        throw new MojWyjatekException();
      }
    }
  17. Czy poniższe metody skompilują się bez błędów?
    public static void main(String[] args) {
      try {
        int x = getInt();
      } catch (InputMismatchException e) {
        System.out.println("Wystapil blad: " + e.getMessage());
      }
    
      if (x >= 0) {
        System.out.println("Podana liczba jest nieujemna.");
      } else {
        System.out.println("Podana liczba jest ujemna.");
      }
    }
    
    public static int getInt() {
      return new Scanner(System.in).nextInt();
    }
  18. Czy poniższe metody skompilują się bez błędów?
    public static void pewnaMetoda() {
      try {
        innaMetoda();
      } catch (Exception e) {
        System.out.println(e.getMessage());
      } catch (MojWyjatekException e) {
        System.out.println(e.getMessage());
      }
    }
    
    public static void innaMetoda() throws MojWyjatekException {
      // pewne instrukcje mogace rzucic wyjatek
    }
    gdzie MojWyjatekException to:
    class MojWyjatekException extends Exception {
    
    }
  19. Czy poniższa metoda skompiluje się bez błędów?
    public static void pewnaMetoda() throw IllegalArgumentException {
      // pewne instrukcje moga rzucic wyjatek
    }
  20. Czy poniższe metody skompilują się bez błędów?
    public static void main(String[] args) {
      int wynik;
    
      try {
        int x = getInt();
        wynik = x * x;
      } catch (InputMismatchException e) {
        System.out.println("Wystapil blad: " + e.getMessage());
      }
    
      System.out.println(wynik);
    }
    
    public static int getInt() {
      return new Scanner(System.in).nextInt();
    }
  21. Czy poniższy kod się skompiluje?
    public class Pytania {
      public static void main(String[] args) {
        pewnaMetoda(null);
      }
    
      public static String pewnaMetoda(String str)
          throws NullPointerException {
    
        return str.toUpperCase();
      }
    }
  22. Czy poniższy kod się skompiluje?
    class MojWyjatekException extends Exception {
    }
    
    public class Pytania {
      public static void main(String[] args) throws MojWyjatekException {
        throw new MojWyjatekException("Nic nie robie.");
      }
    }
  23. Czy poniższe metody skompilują się bez błędów?
    public static void pewnaMetoda() {
      throw new IllegalArgumentException();
    }
    
    public static void innaMetoda() {
      throw new Exception();
    }
    
    public static void kolejnaMetoda() throws IOException {
    
    }
  24. Czy poniższy kod skompiluje się poprawnie?
    class MojWyjatekException extends Exception {
    
    }
    
    public class Pytania {
      public static void main(String[] args) {
        try {
          pewnaMetoda();
        } catch (MojWyjatekException | Exception e) {
          System.out.println(e.getMessage());
        }
      }
    
      public static void pewnaMetoda() {
        // pewne instrukcje
      }
    }
  25. Czy poniższe metody skompilują się poprawnie?
    public static void pewnaMetoda() {
      try {
        innaMetoda();
      } catch (Exception e) {
        System.out.println("Wystapil blad: " + e.getMessage());
        throw e;
      }
    }
    
    public static void innaMetoda() throws Exception {
      throw new Exception();
    }
  26. Czy poniższy kod skompiluje się bez błędów? Jeżeli tak, to co zobaczymy na ekranie?
    public class Pytania {
      public static void main(String[] args) {
        try {
          pewnaMetoda(0);
        } catch (Exception e) {
          System.out.println(e.getMessage());
        }
      }
    
      public static int pewnaMetoda(int x) {
        if (x == 0) {
          throw new IllegalArgumentException();
        }
    
        return x * x;
      }
    }

Odpowiedzi do pytań

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.