Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

      
       Язык Java 
      
     
      
       <ul>
        
         <ul>
          
           <li>Исключительные ...

      
       Понятие exception 
      
     
      
       <ul>
        
         <li>Exception (исключительная ситуация...

      
       Обычный метод обработки ошибок 
      
     
      
       <ul>
        
         <li>public class Previous...

      
       Обработка ошибок посредством exception 
      
     
      
       <ul>
        
         <li>public class ...

      
       Обработка исключительных ситуаций 
      
     
      
       <ul>
        
         <li>method1() генериру...

      
       Поведение при возникновении исключительной ситуации 
      
     
      
       <ul>
        
         <li>...

      
       Типы исключительных ситуаций 
      
     
      
       <ul>
        
         <li>Три типа: 
        
   ...

      
       Перехват и обработка исключительных ситуаций 
      
     
      
       <ul>
        
         <li>Блок tr...

      
       Генерация исключительных ситуаций 
      
     
      
       <ul>
        
         <li>Базовый класс Thro...

      
       Генерация исключительных ситуаций 
      
     
      
       <ul>
        
         <li>Методы объекта Thr...

      
       
      
     
      
       Наследники класса Throwable 
      
     
      
       <ul>
        
         ...

      
       Построение цепочек  исключений 
      
     
      
       <ul>
        
         <li>Для построения цепоче...

      
       Конец 
      
     
      
       Вопросы 
       e-mail: a.bovanenko@gmail.com
Upcoming SlideShare
Loading in …5
×

Исключительные ситуации

1,656 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Исключительные ситуации

  1. 1. Язык Java <ul> <ul> <li>Исключительные ситуации </ul> </ul> Алексей Бованенко
  2. 2. Понятие exception <ul> <li>Exception (исключительная ситуация) — событие, возникающее в ходе выполнения программы, которое нарушает нормальное выполнение инструкций </ul> <ul> <li>При возникновении ошибки создается объект, который передается системе выполнения. Данный объект является exception. </ul> <ul> <li>Создание объекта exception и передача его среде выполнения называется генерацией исключительной ситуации </ul>
  3. 3. Обычный метод обработки ошибок <ul> <li>public class PreviousCaseClass { public boolean method1(int i) { boolean res=false; if(i>0) res=true; return res; } public boolean method2(int i) { boolean res=false; if(method1(i)) res=true; return res; } public boolean method3(int i) { </ul> <ul> <li>boolean res=false; if(method2(i)) res=true; return res; } public void test() { int i=-10; if(method3(i)) System.out.println(&quot;Ошибок нет&quot;); else System.out.println(&quot;Неверные входные данные&quot;); } } </ul>
  4. 4. Обработка ошибок посредством exception <ul> <li>public class NewCaseClass { public void method1 (int i) throws Exception { if(i>0) throw new Exception(&quot;Неверные данные&quot;); /* * действия */ } public void method2 (int i) throws Exception { method1(i); } </ul> <ul> <li>public void method3 (int i) throws Exception { method2(i); } public void test() { int i=-10; try{ method3(i); }catch(Exception e) { System.out.println(e); } } } </ul>
  5. 5. Обработка исключительных ситуаций <ul> <li>method1() генерирует исключение </ul> <ul> <li>Среда выполнения пытается найти обработчик среди методов в стэке вызовов (call stack) </ul>
  6. 6. Поведение при возникновении исключительной ситуации <ul> <li>Перехват исключительной ситуации через блок try/catch </ul> <ul> <ul> <li>try{ mathod1(); }catch(Exception e){} </ul> </ul> <ul> <li>Передача исключительной ситуации на уровень выше </ul> <ul> <ul> <li>public void method2() throws Exception{} </ul> </ul>
  7. 7. Типы исключительных ситуаций <ul> <li>Три типа: </ul> <ul> <ul> <li>Обрабатываемые исключительный ситуации </ul> </ul> <ul> <ul> <ul> <li>Правильно написанное программное обеспечение должно обрабатывать такого рода исключительные ситуации, восстанавливая выполнение программы </ul> </ul> </ul> <ul> <ul> <li>Ошибки (error) </ul> </ul> <ul> <ul> <ul> <li>Данные ошибки являются внешними по отношению к программе. </ul> </ul> </ul> <ul> <ul> <ul> <li>Программа не должна их обрабатывать </ul> </ul> </ul> <ul> <ul> <li>Исключительные ситуации времени исполнения (Runtime Exception) </ul> </ul> <ul> <ul> <ul> <li>Такого рода ошибки являются внутренними по отношению к прогармме </ul> </ul> </ul> <ul> <ul> <ul> <li>Программа не должна их обрабатывать </ul> </ul> </ul>
  8. 8. Перехват и обработка исключительных ситуаций <ul> <li>Блок try </ul> <ul> <ul> <li>try{ /* Блок кода */ } catch и finally блоки </ul> </ul> <ul> <li>Блок catch </ul> <ul> <ul> <li>try{ /* Блок кода */ } catch(Exception1 e){} catch(Exception2 e){} </ul> </ul> <ul> <li>Блок finally </ul> <ul> <ul> <li>try{}catch(Exception e){}finally{} </ul> </ul>
  9. 9. Генерация исключительных ситуаций <ul> <li>Базовый класс Throwable </ul> <ul> <ul> <li>Throwable() </ul> </ul> <ul> <ul> <li>Throwable(String message) </ul> </ul> <ul> <ul> <li>Throwable(String message, Throwable cause) </ul> </ul> <ul> <ul> <li>Throwable(Throwable cause) </ul> </ul> <ul> <ul> <li>public Throwable fillInStackTrace() </ul> </ul> <ul> <ul> <li>public Throwable getCause() </ul> </ul> <ul> <ul> <li>public String getMessage() </ul> </ul> <ul> <ul> <li>public StackTraceElement[] getStackTrace() </ul> </ul> <ul> <ul> <ul> <li>public String getFileName() </ul> </ul> </ul> <ul> <ul> <ul> <li>public int getLineNumber() </ul> </ul> </ul> <ul> <ul> <ul> <li>public String getClassName() </ul> </ul> </ul> <ul> <ul> <ul> <li>public String getMethodName() </ul> </ul> </ul> <ul> <ul> <ul> <li>public boolean isNativeMethod() </ul> </ul> </ul>
  10. 10. Генерация исключительных ситуаций <ul> <li>Методы объекта Throwable: </ul> <ul> <ul> <li>public Throwable initCause(Throwable cause) </ul> </ul> <ul> <ul> <li>public void printStackTrace() </ul> </ul> <ul> <ul> <li>public void printStackTrace(PrintStream s) </ul> </ul> <ul> <ul> <li>public void printStackTrace(PrintWriter s) </ul> </ul> <ul> <li>Для генерации исключительной ситуации используется оператор throw </ul> <ul> <ul> <li>throw NewExceptionObject; </ul> </ul>
  11. 11. Наследники класса Throwable <ul> <li>Класс Error — ошибки среды выполнения </ul> <ul> <li>Класс Exception — перехватываемые исключения. Не перехватываются только RuntimeException </ul>
  12. 12. Построение цепочек исключений <ul> <li>Для построения цепочек исключений используется конструктор Throwable с параметром Throwable, а также метод initCause </ul> <ul> <li>Для построения пользовательских классов исключений базовым классом является класс Exception </ul> <ul> <li>Цепочки строятся только для уточнения причин возникновения ошибок для последующей их обработки </ul>
  13. 13. Конец Вопросы e-mail: a.bovanenko@gmail.com

×