Скачать презентацию Исключительные ситуации Exceptions Net Cracker Confidential 2008 Скачать презентацию Исключительные ситуации Exceptions Net Cracker Confidential 2008

Исключительные ситуации(Exceptions)- v0.2.ppt

  • Количество слайдов: 15

Исключительные ситуации (Exceptions) © Net. Cracker Confidential 2008 Исключительные ситуации (Exceptions) © Net. Cracker Confidential 2008

Содержание u Введение u Иерархия u Причины возникновения ошибок u Обработка исключительных ситуаций u Содержание u Введение u Иерархия u Причины возникновения ошибок u Обработка исключительных ситуаций u Проверяемые и непроверяемые исключения u Создание пользовательских классов исключений u Переопределение методов и исключения © Net. Cracker Confidential 2008 2

Введение Классические языки Java . . . int status. Code = some. Action(); if Введение Классические языки Java . . . int status. Code = some. Action(); if (status. Code){. . . обработка ошибки } else { status. Code = another. Action(); if(status. Code) {. . . обработка ошибки. . . } }. . . try{ some. Action(); another. Action(); } catch(Exception e) { // обработка исключительной ситуации } © Net. Cracker Confidential 2008 3

Причины возникновения ошибок u Попытка выполнить некорректное выражение. u. Выполнение оператора throw Этот оператор Причины возникновения ошибок u Попытка выполнить некорректное выражение. u. Выполнение оператора throw Этот оператор применяется для явного порождения ошибки. Асинхронные ошибки во время исполнения программы (например, Out. Of. Memory. Exception) u © Net. Cracker Confidential 2008 4

Обработка исключительных ситуаций Конструкция try-catch-finally: try {. . . } catch(Some. Exception. Class e) Обработка исключительных ситуаций Конструкция try-catch-finally: try {. . . } catch(Some. Exception. Class e) {. . . } catch(Another. Exception. Class e) {. . . } finally { … } © Net. Cracker Confidential 2008 5

Обработка исключительных ситуаций Конструкция try-catch-finally: try { byte [] buffer = new byte[128]; File. Обработка исключительных ситуаций Конструкция try-catch-finally: try { byte [] buffer = new byte[128]; File. Input. Stream fis = new File. Input. Stream("file. txt"); while(fis. read(buffer) > 0) {. . . обработка данных. . . } } catch(IOException es) {. . . обработка исключения. . . } finally { fis. flush(); fis. close(); } © Net. Cracker Confidential 2008 6

Использование оператора throw public int calculate(int the. Value) throws Exception { if( the. Value Использование оператора throw public int calculate(int the. Value) throws Exception { if( the. Value < 0) { throw new Exception("Параметр для вычисления не должен быть отрицательным"); } } © Net. Cracker Confidential 2008 7

Использование оператора throw try {. . . } catch(IOException ex) { // Обработка исключительной Использование оператора throw try {. . . } catch(IOException ex) { // Обработка исключительной ситуации // Повторное возбуждение исключительной // ситуации throw ex; } © Net. Cracker Confidential 2008 8

Использование оператора throw try {. . . throw new IOException(); . . . } Использование оператора throw try {. . . throw new IOException(); . . . } catch(Exception e) {. . . } © Net. Cracker Confidential 2008 9

Проверяемые и непроверяемые исключения Null. Pointer. Exception, Class. Not. Found. Exception Clone. Not. Supported. Проверяемые и непроверяемые исключения Null. Pointer. Exception, Class. Not. Found. Exception Clone. Not. Supported. Exception Array. Index. Out. Of. Bounds. Exception … … © Net. Cracker Confidential 2008 10

Иерархия © Net. Cracker Confidential 2008 11 Иерархия © Net. Cracker Confidential 2008 11

Последовательность обработки исключений Неправильная конструкция Правильная конструкция try {. . . } catch(Exception e) Последовательность обработки исключений Неправильная конструкция Правильная конструкция try {. . . } catch(Exception e) {. . . } catch(IOException ioe) {. . . } catch(User. Exception ue) {. . . } try {. . . } catch(User. Exception ue) {. . . } catch(IOException ioe) {. . . } catch(Exception e) { … } © Net. Cracker Confidential 2008 12

Пользовательские классы исключений public class User. Exception extends Exception { public User. Exception() { Пользовательские классы исключений public class User. Exception extends Exception { public User. Exception() { super(); } public User. Exception(String description) { super(description); } } Использование: throw new User. Exception("Дополнительное описание"); © Net. Cracker Confidential 2008 13

Переопределение методов и исключения При переопределении методов следует помнить, что если переопределяемый метод объявляет Переопределение методов и исключения При переопределении методов следует помнить, что если переопределяемый метод объявляет список возможных исключений, то переопределяющий метод не может расширять этот список, но может его сужать. Метод базового класса Корректно Некорректно public void make. It() throws Some. Exception. Some. More. Exception © Net. Cracker Confidential 2008 14

Исключительные ситуации (Exceptions) Вопросы ? © Net. Cracker Confidential 2008 15 Исключительные ситуации (Exceptions) Вопросы ? © Net. Cracker Confidential 2008 15