Advertisement
ya_zay4eg

level09.lesson08.task03

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