Обработка исключений – это механизм восстановления при возникновении ошибки или исключения в коде. Обработка исключений – полезный инструмент, позволяющий убедиться, что программа или код все еще работают, несмотря на возникновение исключения.
Создайте обработку исключений
Для создания обработки исключений в Java можно использовать try catch
блок. Блок try
содержит код, который потенциально может вызвать исключение. Блок catch
содержит код, который будет выполнен в случае возникновения исключения. Это основной синтаксис попробуйте поймать
блок.
try { // code.. } catch(exception_type e) { // code.. }
Это пример использования try catch
для обработки исключения.
public class MyApp { public static void main(String[] args) { try { // execute the division operation int num = 20 / 0; // print out the result System.out.println("Result: " + num); } catch (Exception e) { // print the exception's message if exception is occurred System.out.println("Exception: " + e.getMessage()); } } }
Выход
Exception: / by zero
Основываясь на приведенном выше коде, в этом коде возникает исключение, затем выполняется код внутри блока catch
для печати сообщения об исключении. Исключение возникает из-за невозможности деления на ноль, поэтому возникает или возникает исключение.
Также доступен блок наконец
. По сути, код внутри блока finally
выполняется независимо от того, выдает код исключение или нет.
Это пример использования блока finally
.
public class MyApp { public static void main(String[] args) { try { // execute the division operation int num = 20 / 0; // print out the result System.out.println("Result: " + num); } catch (Exception e) { // print the exception's message if exception is occurred System.out.println("Exception: " + e.getMessage()); } finally { // execute this code System.out.println("I'm done!"); } } }
Выход
Exception: / by zero I'm done!
Основываясь на приведенном выше коде, код внутри блока finally
все еще выполняется, хотя и возникает исключение.
В этом коде блок finally
все еще выполняется, хотя код выполнен успешно.
public class MyApp { public static void main(String[] args) { try { // execute the division operation int num = 20 / 10; // print out the result System.out.println("Result: " + num); } catch (Exception e) { // print the exception's message if exception is occurred System.out.println("Exception: " + e.getMessage()); } finally { // execute this code System.out.println("I'm done!"); } } }
Выход
Result: 2 I'm done!
Если исключение возникло внутри блока try
, остальные коды внутри блока try
игнорируются.
public class MyApp { public static void main(String[] args) { try { // execute the division operation int num = 20 / 0; // exception is thrown here. // this code is ignored System.out.println("Result: " + num); } catch (Exception e) { // print the exception's message if exception is occurred System.out.println("Exception: " + e.getMessage()); } } }
Создайте пользовательское исключение
Исключение может быть вызвано функцией. Указывать на определенную функцию – значит выдавать исключение. Используйте броски
ключевое слово после объявления функции.
// example public static int sum(int[] nums) throws Exception { }
Исключение функции может быть обработано с помощью try catch
блока. Это пример использования бросков
в функции.
public class MyApp { public static void main(String[] args) { try { // execute a function that throws an exception regularFunc(1000); } catch (Exception e) { // get the exception's message System.out.println("Message: " + e.getMessage()); } } // create a function that throws RuntimeException public static void regularFunc(int num) throws RuntimeException { if (num > 100) throw new RuntimeException("It's too much!"); else System.out.println("Good to go!"); } }
Выход
Message: It's too much!
Основываясь на приведенном выше коде, генерируется исключение и выполняется код внутри блока catch
. обратите внимание, что сообщение об исключении определено внутри аргумента метода RuntimeException()
в обычной функции Func()
.
Источники
- Узнайте больше об исключении по этой ссылке .
Я надеюсь, что эта статья будет полезна для изучения языка программирования Java. Если у вас есть какие-либо мысли или комментарии, вы можете написать в разделе обсуждения ниже.
Оригинал: “https://dev.to/nadirbasalamah/java-tutorial-6-exception-handling-3f68”