logo

Перевірені та неперевірені винятки в Java

У Java, виняток це небажана або неочікувана подія, яка відбувається під час виконання програми, тобто під час виконання, що порушує нормальний потік інструкцій програми.

У Java є два типи винятків:

  1. Перевірені винятки
  2. Неперевірені винятки

Перевірені та неперевірені винятки Java



Перевірені винятки в Java

Ці це винятки, які перевіряються під час компіляції. Якщо якийсь код у межах методу створює перевірений виняток, тоді метод повинен або обробити виняток, або він має вказати виняток за допомогою кидки ключове слово . У перевірених винятках існує два типи: повністю перевірені та частково перевірені винятки. Повністю перевірений виняток — це перевірений виняток, де також перевіряються всі його дочірні класи, наприклад IOException і InterruptedException. Частково перевірений виняток — це перевірений виняток, де деякі з його дочірніх класів не позначено, як Виняток.

Наприклад, розглянемо таку програму Java, яка відкриває файл у розташуванні C: esta.txt і друкує його перші три рядки. Програма не компілюється, оскільки функція main() використовує FileReader(), а FileReader() генерує перевірений виняток FileNotFoundException . Він також використовує методи readLine() і close(), і ці методи також викидають перевірений виняток IOException

масив рядків c програмування

приклад:

Java




// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException occurred> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Reading file from path in local directory> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Creating object as one of ways of taking input> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing file connections> >// using close() method> >fileInput.close();> >}> }>

>

>

Вихід:

Вихід винятку Java Checked

Щоб виправити наведену вище програму, нам потрібно або вказати список винятків за допомогою throws, або нам потрібно використати блок try-catch. Ми використовували кидки в наведеній нижче програмі. Оскільки FileNotFoundException є підкласом IOException , ми можемо просто уточнити IOException у списку кидків і зробіть програму компілятора без помилок.

приклад:

Java

список користувачів mysql




// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException does not occur> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >throws> IOException> >{> >// Creating a file and reading from local repository> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Reading content inside a file> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing all file connections> >// using close() method> >// Good practice to avoid any memory leakage> >fileInput.close();> >}> }>

>

>

Вихід:

First three lines of file 'C:	esta.txt'>

Неперевірені винятки в Java

Це винятки, які не перевіряються під час компіляції. У C++ усі винятки не перевіряються, тому компілятор не змушує його обробляти чи вказувати виняток. Програмісти повинні бути цивілізованими та вказувати чи ловити винятки. У Java винятки під Помилка і RuntimeException класи є неперевіреними винятками, усе інше під кидком перевіряється.

динамічний масив у java

Розглянемо наступну програму Java. Він добре компілюється, але викидає ArithmeticException при запуску. Компілятор дозволяє компілювати, оскільки ArithmeticException є неперевіреним винятком.

приклад:

Java


рядок обробки java



// Java Program to Illustrate Un-checked Exceptions> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Here we are dividing by 0> >// which will not be caught at compile time> >// as there is no mistake but caught at runtime> >// because it is mathematically incorrect> >int> x =>0>;> >int> y =>10>;> >int> z = y / x;> >}> }>

>

>

Вихід

Exception in thread 'main' java.lang.ArithmeticException: / by zero at Main.main(Main.java:5) Java Result: 1>

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

Неперевірені винятки включають усі підкласи класу RuntimeException, а також клас Error та його підкласи.

Ось кілька прикладів неперевірених винятків у Java:

1. ArrayIndexOutOfBoundsException: Цей виняток виникає, коли ви намагаєтеся отримати доступ до індексу масиву, який знаходиться поза межами.
2. Виняток NullPointer: Цей виняток виникає, коли ви намагаєтесь отримати доступ до посилання на нульовий об’єкт.
3. ArithmeticException: Цей виняток виникає, коли ви намагаєтеся поділити на нуль або виконуєте недійсну арифметичну операцію.