Advertisement
jaVer404

level09.lesson08.task03

Apr 26th, 2015
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.69 KB | None | 0 0
  1. package com.javarush.test.level09.lesson08.task03;
  2.  
  3. import java.io.CharConversionException;
  4. import java.io.IOException;
  5. import java.nio.file.FileSystemException;
  6.  
  7. /* Перехват выборочных исключений
  8. 1. Разберись, какие исключения бросает метод BEAN.methodThrowExceptions.
  9.  
  10. 2. Метод processExceptions должен вызывать метод BEAN.methodThrowExceptions и обрабатывать исключения:
  11. 2.1. если возникло исключение FileSystemException,
  12.     то логировать его (вызвать метод BEAN.log) и пробросить дальше
  13. 2.2. если возникло исключение CharConversionException или любое другое IOException,
  14.     то только логировать его - вызвать метод BEAN.log
  15.  
  16. 3. Добавь в сигнатуру метода processExceptions класс исключения, которое ты пробрасываешь в п.2.1.
  17.  
  18. 4. В методе main обработай оставшееся исключение - логируй его. Используй try..catch
  19.  
  20. Подсказка:
  21. Если ты захватил исключение MyException, которое не хотел захватывать, его можно пробросить дальше кодом вида:
  22. catch (MyException e) {
  23. throw e;
  24. }
  25. */
  26.  
  27. public class Solution {
  28.     public static StatelessBean BEAN = new StatelessBean();
  29.  
  30.     public static void main(String[] args) {
  31.         try
  32.         {
  33.             processExceptions();
  34.         }
  35.         catch (Exception e) {
  36.             BEAN.log(e);
  37.         }
  38.     }
  39.  
  40.     public static void processExceptions() throws FileSystemException{
  41.         try
  42.         {
  43.             BEAN.methodThrowExceptions();
  44.         }
  45.         catch (FileSystemException e) {
  46.             BEAN.log(e);
  47.             throw e;
  48.         }
  49.         catch (CharConversionException e) {
  50.             BEAN.log(e);
  51.         }
  52.         catch (IOException e) {
  53.             BEAN.log(e);
  54.         }
  55.     }
  56.  
  57.     public static class StatelessBean {
  58.         public void log(Exception exception) {
  59.             System.out.println(exception.getMessage() + ", " + exception.getClass().getSimpleName());
  60.         }
  61.  
  62.         public void methodThrowExceptions() throws CharConversionException, FileSystemException, IOException {
  63.             int i = (int) (Math.random() * 3);
  64.             if (i == 0)
  65.                 throw new CharConversionException();
  66.             if (i == 1)
  67.                 throw new FileSystemException("");
  68.             if (i == 2)
  69.                 throw new IOException();
  70.         }
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement