Робота з BufferedReader і його варіантами в Java завжди була трохи болючою: розробникам потрібно не забути закрити його і зробити виняток IOException, не кажучи вже про купу нульових перевірок. В іншому випадку ваша програмна робота може бути перервана найнесподіванішим і неприємним чином. До Java 7 нам потрібно було зробити щось інше, подібне до цього:

Незважаючи на null перевірку, спроба закрити Reader зрештою все ще може викликати виключення IOException, тому розробники повинні 1) закрити Reader і 2) обробити можливу помилку.

В Java 7 BufferedReader реалізує java.lang.AutoCloseable , так що ми більше не змушені закривати його вручну, але IOException все ще може бути викинута, як тут:


І нарешті Java 8 прийшла разом з усією міццю синтаксичного цукру. Тепер у нас є заява "try-with-resources", щоб допомогти ледачим розробникам покрити доступ до деяких ресурсів за допомогою try/catch smart way і за лаштунками. Код, що використовує здатність Java 8, буде виглядати наступним чином:

Як ви можете бачити, більше не потрібно ніяких спроб і ніяких викликів close(). Функція видає виняток IOException тільки тому, що викликається readLine(), якщо внутрішня логіка функції цього не потребує - ця функція не видаватиме помилку тільки тому, що buffered reader закриється.

 

 

 

Lego

Java
Development

More like this

Get in touch

Зв'язатися з нами

Frankfurt am Main, Germany (Sales)

60354

Eckenheimer Schulstraße, 20

+38 (098) 630-49-85

info@a5.ua

Харків, Україна

61023

вул. Трінклера, 9

+38 (050) 908-31-07

info@a5.ua

Burgas, Bulgaria (Development)

8008

бул. „Транспортна“ 15, Northern Industrial Zone

+359 877 350129

info@a5.ua