Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Встроенные исключения Java






Существуют несколько готовых системных исключений. Большинство из них являются подклассами типа RuntimeException и их не нужно включать в список throws. Вот небольшой список непроверяемых исключений.

  • ClassNotFoundException - класс не найден
  • CloneNotSupportedException - попытка клонировать объект, который не реализует интерфейс Cloneable
  • IllegalAccessException - запрещен доступ к классу
  • InstantiationException - попытка создать объект абстрактного класса или интерфейса
  • InterruptedException - поток прерван другим потоком
  • NoSuchFieldException - запрашиваемое поле не существует
  • NoSuchMethodException - запрашиваемый метод не существует
  • ReflectiveOperationException - исключение, связанное с рефлексией

Список проверяемых системных исключений, которые можно включать в список throws.

  • ArithmeticException - арифметическая ошибка, например, деление на нуль
  • ArrayIndexOutOfBoundsException - выход индекса за границу массива
  • ArrayStoreException - присваивание элементу массива объекта несовместимого типа
  • ClassCastException - неверное приведение
  • EnumConstantNotPresentException - попытка использования неопределённого значения перечисления
  • IllegalArgumentException - неверный аргумент при вызове метода
  • IllegalMonitorStateException - неверная операция мониторинга
  • IllegalStateException - некорректное состояние приложения
  • IllegalThreadStateException - запрашиваемая операция несовместима с текущим потоком
  • IndexOutofBoundsException - тип индекса вышел за допустимые пределы
  • NegativeArraySizeException - создан массив отрицательного размера
  • NullPointerException - неверное использование пустой ссылки
  • NumberFormatException - неверное преобразование строки в числовой формат
  • SecurityException - попытка нарушения безопасности
  • StringIndexOutOfBounds - попытка использования индекса за пределами строки
  • TypeNotPresentException - тип не найден
  • UnsupportedOperationException - обнаружена неподдерживаемая операция

Система не может предусмотреть все исключения, иногда вам придётся создать собственный тип исключения для вашего приложения.

Можно создать универсальный обработчик, перехватывающий любые типы исключения. Осуществляется это перехватом базового класса всех исключений Exception:

cacth(Exception e) {

Log.w(" Log", " Перехвачено исключение");

}

Подобная конструкция не упустит ни одного исключения, поэтому ее следует размещать в самом конце списка обработчиков, во избежание блокировки следующих за ней обработчиков исключений.

Инструкция. В заданиях 1-11 обеспечить корректную работу программы при любых введенных данных, используя механизм исключений

Задание 1.

Выражение: b*b*(a-b)/a a b Ответ
public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.println(" введите а и в"); int a = sc.nextInt(); int b = sc.nextInt(); int m = b*b*(a-b)/a; System.out.print(m);   } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция"); } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }     -8
    Произошла недопустимая арифметическая операция
ы аыв Произошло ещё какое-то исключение
7.9   Произошло ещё какое-то исключение

 

Задание 2.

Выражение: a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a=");   double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); System.out.print(" Result "); System.out.println(Math.sqrt(a-b)); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция"); } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }     1.0
    Произошла недопустимая арифметическая операция
гг   Произошло ещё какое-то исключение
6.7   Произошло ещё какое-то исключение

Примечание Math.sqrt(n) –возвращает квадратный корень из n

Задание 3.

Выражение: a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a=");   double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); System.out.print(" Result "); System.out.println(a*Math.sqrt(b)); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }     2.0
-1   -0.0
рп   Произошло ещё какое-то исключение
9, 8 7, 9 27.544799872208188

 

Задание 4.

Выражение: a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a=");   double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); System.out.print(" Result "); System.out.println(a*(b-a)/(b+a)); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }       3.08
    0.0
ор   Произошло ещё какое-то исключение
7, 6 5, 8 -1.020895522388

 

Задание 5.

Выражение: a b Ответ
Код метода main       11.49394640660682
    18.76166303929372
енке   Произошло ещё какое-то исключение
-4 -8 Произошла недопустимая арифметическая операция

 

 

Упражнение 2 Условный оператор (унарный)

Задание 6.

Если а> b вывести a иначе ничего не выводить a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a="); double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); if (a> b) System.out.print(a); else System.out.println(" не выводить"); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }       8.0
8.9   Произошло ещё какое-то исключение
    не выводить
-6   не выводить

 

Задание 7.

Если а> 2 вывести корень из а, иначе – квадрат b a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a="); double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); if (a> b) System.out.print(Math.sqrt(a)); else System.out.println(b*b); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }     2.8284271247461903
    64.0
8, 8   2.9832867780352594
прв   Произошло ещё какое-то исключение

 

Задание 8.

Вывести Max(a, b) a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a="); double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); if (a> b) System.out.print(a); else System.out.println(b); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }       8.0
    88.0
парва   Произошло ещё какое-то исключение
7, 6   7.6

 

Задание 9.

Вывести Min(a, a+b) a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a="); double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); if (a< (a+b)) System.out.print(a); else System.out.println(a+b); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }       156.0
прп   Произошло ещё какое-то исключение
    0.0
8, 9   8.9

 

 

Упражнение 3. Условный оператор (вложенный)

Задание 10.

Вывести Max(Min(a, b), Min(a+b, a-b) a b Ответ
Код метода main public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print(" a="); double a = sc.nextDouble(); System.out.print(" b="); double b = sc.nextDouble(); if (a> b) System.out.print(b); else System.out.println(a); if (a+b> a-b) System.out.print(a-b); else System.out.println(a+b); if (b> a-b) System.out.print(b); else System.out.println(a-b); } catch (ArithmeticException e) { System.out.println(" Произошла недопустимая арифметическая операция");   } catch (Exception e) { System.out.println(" Произошло ещё какое-то исключение"); } } }       790.0 -7986.08776.0
    0.0 -7.07.0
9.9   Произошло ещё какое-то исключение
6, 9   5.01.90000000000000045.0

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.