Домой Учебники по Java и J2EE Лучшее понимание на Checked Vs. Непроверенные исключения — Как лучше обрабатывать исключения...

Лучшее понимание на Checked Vs. Непроверенные исключения — Как лучше обрабатывать исключения в Java?

566
0

Проверено исключение

Что такое проверенное исключение в языке программирования Java . Простым языком: Исключение, которое проверяется во время компиляции, называется Проверенное исключение. Некоторые из них упомянуты ниже. Если в вашем коде, если какой-то метод бросает checked exception , тогда метод должен либо handle the exception или это должно указать исключение, используя throws ключевое слово.

  1. IOException
  2. SQLException
  3. DataAccessException
  4. ClassNotFoundException
  5. InvocationTargetException
  6. MalformedURLException

Давайте посмотрим на пример:

В следующем примере мы собираемся получить содержимое сайта «Crunchify.com» и распечатать его в консоли. Во время этой операции Java-программа выбросит MalformedURLException или же IOException ниже выделенные строки.

CrunchifyCheckedException.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
пакет ком . crunchify. учебник ;
Импортировать Java. Ио. BufferedReader ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать Java. нетто. URL ;
Импортировать Java. нетто. URLConnection ;
Импортировать Java. Nio . кодировок. Charset ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyCheckedException {
общественности статический недействительным main ( Строка [ ] аргументы ) {
Система. вне. println ( / nOutput: / n + callCrunchifyURL ( https://crunchify.com ) ) ;
}
общественности статический строка callCrunchifyURL ( String myURL ) {
Система. вне. println ( Запрошенный URL: + myURL ) ;
StringBuilder sb знак равно новый StringBuilder ( ) ;
URLConnection urlConn знак равно ноль ;
InputStreamReader в знак равно ноль ;
URL URL знак равно новый URL ( myURL ) ;
urlConn знак равно URLадрес. openConnection ( ) ;
если ( urlConn ! знак равно ноль )
urlConn . setReadTimeout ( 60 * 1000 ) ;
если ( urlConn ! знак равно ноль && urlConn.getInputStream ()! = null) {
in = new InputStreamReader (urlConn.getInputStream (), Charset.defaultCharset ());
BufferedReader bufferedReader знак равно новый BufferedReader ( в ) ;
если ( bufferedReader ! знак равно ноль ) {
ИНТ ср ;
в то время как ( ( ср знак равно bufferedReader . читать ( ) ) ! знак равно 1 ) {
бакалавр естественных наук добавить ( ( символ ) ср ) ;
}
bufferedReader . закрыть ( ) ;
}
}
дюйм закрыть ( ) ;
вернуть бакалавр естественных наук toString ( ) ;
}
}

Есть два способа решить это. Add throws clause ИЛИ ЖЕ Add Try, Catch block к вашему коду, чтобы решить это. Вот обновленный код.

  1. Изменить строки 16 и 20 и добавляет throws IOException
  2. Добавьте блок try catch на 26,42,43
CrunchifyCheckedException.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
пакет ком . crunchify. учебник ;
Импортировать Java. Ио. BufferedReader ;
Импортировать Java. Ио. IOException ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать Java. нетто. URL ;
Импортировать Java. нетто. URLConnection ;
Импортировать Java. Nio . кодировок. Charset ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyCheckedException {
общественности статический недействительным main ( Строка [ ] аргументы ) бросает IOException {
Система. вне. println ( / nOutput: / n + callCrunchifyURL ( https://crunchify.com ) ) ;
}
общественности статический строка callCrunchifyURL ( String myURL ) бросает IOException {
Система. вне. println ( Запрошенный URL: + myURL ) ;
StringBuilder sb знак равно новый StringBuilder ( ) ;
URLConnection urlConn знак равно ноль ;
InputStreamReader в знак равно ноль ;
пытаться {
URL URL знак равно новый URL ( myURL ) ;
urlConn знак равно URLадрес. openConnection ( ) ;
если ( urlConn ! знак равно ноль )
urlConn . setReadTimeout ( 60 * 1000 ) ;
если ( urlConn ! знак равно ноль && urlConn.getInputStream ()! = null) {
in = new InputStreamReader (urlConn.getInputStream (), Charset.defaultCharset ());
BufferedReader bufferedReader знак равно новый BufferedReader ( в ) ;
если ( bufferedReader ! знак равно ноль ) {
ИНТ ср ;
в то время как ( ( ср знак равно bufferedReader . читать ( ) ) ! знак равно 1 ) {
бакалавр естественных наук добавить ( ( символ ) ср ) ;
}
bufferedReader . закрыть ( ) ;
}
}
} ловить ( IOException е ) {
                 // TODO: поглотить и выдать ошибку с подробным сообщением.
}
дюйм закрыть ( ) ;
вернуть бакалавр естественных наук toString ( ) ;
}
}

Непроверенное исключение

Unchecked Exception в Java — это те исключения, чья обработка NOT verified during Compile time , Эти исключения происходят из-за плохого программирования. Программа не выдаст ошибку компиляции. Все непроверенные исключения являются прямыми подклассами RuntimeException учебный класс.

ЧИТАТЬ ТАКЖЕ:  Как отправить HTTP-запрос и получить ответ в Java?

Простой пример: вы создали онлайн-форму, которая принимает пользовательский ввод. Это бесплатная текстовая форма. Использование может ввести любое неправильное значение в случае поля электронной почты, поля имени пользователя ИЛИ поля номера телефона. Если у вас нет проверки на стороне клиента, тогда есть больше возможностей получить исключение проверки времени выполнения при запуске приложения в рабочей среде. Ошибка может генерировать операция БД или преобразование поля из одного формата в другой.

Ниже приведены типы непроверенных исключений:

  • Исключение нулевого указателя
  • ArrayIndexOutOfBound
  • IllegalArgumentException
  • IllegalStateException

Больше всего меня раздражает исключение NullPointer. Я написал подробную статью о NPE на прошлой неделе. Есть всего 8 различных советов, чтобы избежать NPE .

CrunchifyUncheckedException.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
пакет ком . crunchify. учебник ;
/ **
* @author Crunchify.com
* /
общественности учебный класс CrunchifyUncheckedException {
общественности статический недействительным главная ( Строка args [ ] ) {
строка crunchifyArr [ ] знак равно { Хруст , Google , Yahoo , Амазонка , eBay } ;
строка MyString знак равно crunchifyArr [ 7 ] ; // Это выдает ArrayIndexOutOfBoundException
Система. вне. println ( myString ) ;
}
}

CrunchifyUncheckedException.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
пакет ком . crunchify. учебник ;
/ **
* @author Crunchify.com
* /
общественности учебный класс CrunchifyUncheckedException {
общественности статический недействительным главная ( Строка args [ ] ) {
строка crunchifyArr [ ] знак равно { Хруст , Google , Yahoo , Амазонка , eBay } ;
пытаться {
строка MyString знак равно crunchifyArr [ 7 ] ; // Это выдает ArrayIndexOutOfBoundException
Система. вне. println ( myString ) ;
} ловить ( ArrayIndexOutOfBoundsException е ) {
Система. вне. println ( ArrayIndexOutOfBoundException появляется здесь. Лучше обрабатывать это в коде выше 🙂 + е ) ;
}
}
}

В Java 7 вы можете обрабатывать несколько исключений в одном блоке кэша. Вы можете изменить строку 13 сверху, строка изменилась ниже.

1
} ловить ( ArrayIndexOutOfBoundsException | NumberFormatException е ) {

Таким образом, исключение как Checked, так и Unchecked обрабатывается с использованием ключевого слова. try, catch а также finally , С точки зрения функциональности Checked и Unchecked Exception одинаковы.

Лучшее понимание на Checked Vs. Непроверенные исключения — Как лучше обрабатывать исключения в Java?

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь