Проверено исключение
Что такое проверенное исключение в языке программирования Java . Простым языком: Исключение, которое проверяется во время компиляции, называется Проверенное исключение. Некоторые из них упомянуты ниже. Если в вашем коде, если какой-то метод бросает checked exception , тогда метод должен либо handle the exception или это должно указать исключение, используя throws ключевое слово.
- IOException
- SQLException
- DataAccessException
- ClassNotFoundException
- InvocationTargetException
- MalformedURLException
Давайте посмотрим на пример:
В следующем примере мы собираемся получить содержимое сайта «Crunchify.com» и распечатать его в консоли. Во время этой операции Java-программа выбросит MalformedURLException или же IOException ниже выделенные строки.
|
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 к вашему коду, чтобы решить это. Вот обновленный код.
- Изменить строки 16 и 20 и добавляет
throws IOException - Добавьте блок try catch на 26,42,43
|
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 учебный класс.
Простой пример: вы создали онлайн-форму, которая принимает пользовательский ввод. Это бесплатная текстовая форма. Использование может ввести любое неправильное значение в случае поля электронной почты, поля имени пользователя ИЛИ поля номера телефона. Если у вас нет проверки на стороне клиента, тогда есть больше возможностей получить исключение проверки времени выполнения при запуске приложения в рабочей среде. Ошибка может генерировать операция БД или преобразование поля из одного формата в другой.
Ниже приведены типы непроверенных исключений:
- Исключение нулевого указателя
- ArrayIndexOutOfBound
- IllegalArgumentException
- IllegalStateException
Больше всего меня раздражает исключение NullPointer. Я написал подробную статью о NPE на прошлой неделе. Есть всего 8 различных советов, чтобы избежать NPE .
|
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 ) ;
}
}
|
|
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 одинаковы.
0.00 (0%) 0 votes









