logo

кидати і кидати в Java

У Java обробка винятків є одним із ефективних засобів обробки помилок виконання, щоб можна було зберегти регулярний потік програми. Він обробляє помилки виконання, такі як NullPointerException ArrayIndexOutOfBoundsException тощо. Для ефективної обробки цих помилок Java надає два ключові слова throw і throws.

Java кинути

Ключове слово throw в Java використовується для явного створення винятку з методу або будь-якого блоку коду. Ми можемо викинути перевірений або неперевірений виняток. Ключове слово throw в основному використовується для викиду спеціальних винятків. 

Синтаксис:



кинути Екземпляр

Де екземпляр є об’єктом типу Throwable (або його підкласами, такими як Exception).

приклад:

викинути новий ArithmeticException('/ на нуль');

Але цей виняток, тобто екземпляр, має мати тип Кидковий або підклас Кидковий

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

кодування Java if else оператор

приклад: Цей приклад демонструє, коли виняток кидається, перехоплюється та повторно кидається всередині методу.

Java
class Geeks {  static void fun()  {  try {  throw new NullPointerException('demo');  }  catch (NullPointerException e) {  System.out.println('Caught inside fun().');  throw e; // rethrowing the exception  }  }  public static void main(String args[])  {  try {  fun();  }  catch (NullPointerException e) {  System.out.println('Caught in main.');  }  } } 

Вихід
Caught inside fun(). Caught in main. 

Пояснення: Наведений вище приклад демонструє використання ключового слова throw для явного виключення NullPointerException. Виняток уловлюється всередині весело() метод і повторно викидається, де він потім перехоплюється в методі main().

приклад: Цей приклад демонструє арифметичний виняток.

Java
// Throwing an arithmetic exception class Geeks {  public static void main(String[] args){  int numerator = 1;  int denominator = 0;  if (denominator == 0) {  // Manually throw an ArithmeticException  throw new ArithmeticException('Cannot divide by zero');  } else {  System.out.println(numerator / denominator);  }  } } 

Вихід:

Hangup (SIGHUP)  
Exception in thread 'main' java.lang.ArithmeticException: Cannot divide by zero
at Geeks.main(Geeks.java:9)

Пояснення: Наведений вище приклад демонструє виняток із використанням throw, коли ArithmeticException явно створюється через ділення на нуль.

Ява кидає

кидки це ключове слово в Java, яке використовується в сигнатурі методу, щоб вказати, що цей метод може викликати один із перелічених винятків типу. Виклик цих методів має обробити виняток за допомогою блоку try-catch. 

Синтаксис:

тип method_name(parameters) створює список винятків

де список_виключень — це розділений комами список усіх винятків, які може викликати метод.

підключення java

У програмі, якщо є ймовірність викликати виняток, компілятор завжди попереджає нас про це, і ми повинні обробити цей перевірений виняток. В іншому випадку ми отримаємо помилку під час компіляції про те, що неповідомлений виняток XXX потрібно перехопити або оголошено таким, що викидається. Щоб запобігти цій помилці часу компіляції, ми можемо обробити виняток двома способами: 

  1. За допомогою try catch
  2. Використовуючи кидки ключове слово

Ми можемо використовувати ключове слово throws, щоб делегувати відповідальність за обробку винятків абоненту (це може бути метод або JVM), тоді метод викликаючого відповідатиме за обробку цього винятку.  

Приклад 1: Необроблений виняток

Java
class Geeks {  public static void main(String[] args)  {  Thread.sleep(10000);  System.out.println('Hello Geeks');  } } 

Вихід:

error: unreported exception InterruptedException; must be caught or declared to be thrown

Пояснення: У наведеній вище програмі ми отримуємо помилку часу компіляції, оскільки існує ймовірність винятку, якщо основний потік переходить у режим сну, інші потоки отримують можливість виконати метод main(), який спричинить InterruptedException. 

Приклад 2: Використання throws для обробки винятку

Java
class Geeks {  public static void main(String[] args)  throws InterruptedException  {  Thread.sleep(10000);  System.out.println('Hello Geeks');  } } 

Вихід:

Hello Geeks

Пояснення: У наведеній вище програмі ми обробили ключове слово throws InterruptedException і ми отримаємо результат як Привіт гіки.

приклад 3: Створення винятку зthrows

Java
class Geeks {  static void fun() throws IllegalAccessException  {  System.out.println('Inside fun(). ');  throw new IllegalAccessException('demo');  }  public static void main(String args[])  {  try {  fun();  }  catch (IllegalAccessException e) {  System.out.println('Caught in main.');  }  } } 

Вихід
Inside fun(). Caught in main. 

Пояснення: Наведений вище приклад викидає IllegalAccessException із методу та обробляє його в основному методі за допомогою блоку try-catch.

Різниця між кидком і кидком

Основні відмінності між throw і throws в Java такі:

кинути

кидки

Він використовується для явного виклику винятку.

Він використовується, щоб оголосити, що метод може генерувати один або більше винятків.

Він використовується всередині методу або блоку коду.

Він використовується в сигнатурі методу.

Він може створювати як перевірені, так і неперевірені винятки.

Він використовується лише для перевірених винятків. Неперевірені винятки не вимагають кидки

Метод або блок створює виняток.

Виклик методу відповідає за обробку винятку.

Негайно зупиняє поточний потік виконання.

Це змушує абонента обробляти оголошені винятки.

де налаштування браузера

викинути новий ArithmeticException('Error');

public void myMethod() створює IOException {}