Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Попробуйте Catch в Java:пример обработки исключений

Что такое исключение в Java?

Исключение в Java это событие, которое прерывает выполнение программных инструкций и нарушает нормальный ход выполнения программы. Это объект, который упаковывает информацию об ошибке, произошедшую в методе, и передает ее в систему времени выполнения. В Java исключения в основном используются для указания различных типов ошибок.

В этом уроке вы узнаете-

Существует два типа ошибок:

  1. Ошибки времени компиляции
  2. Ошибки выполнения

Ошибки времени компиляции снова можно разделить на два типа:

Пример синтаксических ошибок:

Вместо объявления int a; вы ошибочно объявили его как in a; для которого компилятор выдаст ошибку.

Пример:вы объявили переменную int a; и после нескольких строк кода вы снова объявляете целое число как int a; . Все эти ошибки подсвечиваются при компиляции кода.

Пример ошибок во время выполнения

Ошибка выполнения называется Исключениями . ошибка. Это любое событие, которое прерывает нормальный ход выполнения программы.

Примеры исключений:арифметическое исключение, исключение нулевого указателя, исключение деления на ноль и т. д.

Исключения в Java — это то, что находится вне контроля разработчиков.

Нажмите здесь, если видео недоступно

Зачем нам Exception?

Предположим, вы написали программу для доступа к серверу. Пока вы разрабатывали код, все работало нормально.

Во время фактического производственного цикла сервер не работает. Когда ваша программа пытается получить к нему доступ, возникает исключение.

Как обрабатывать исключения

До сих пор мы видели, что исключение находится вне контроля разработчика. Но возлагать вину за сбой кода на экологические проблемы — это не решение. Вам нужно надежное программирование, которое позаботится об исключительных ситуациях. Такой код называется обработчиком исключений.

В нашем примере хорошей обработкой исключений будет подключение к резервному серверу, когда сервер не работает.

Чтобы реализовать это, введите свой код для подключения к серверу (используя традиционные условия if и else).

Вы проверите, если сервер не работает. Если да, напишите код для подключения к резервному серверу.

Такая организация кода с использованием циклов «если» и «иначе» неэффективна, если в вашем коде есть несколько исключений Java для обработки.

class connect{
	if(Server Up){
	 // code to connect to server
	}
	else{
	 // code to connect to BACKUP server
	}
}

Попробуйте заблокировать

Java обеспечивает встроенную исключительную обработку.

  1. Обычный код переходит в TRY блокировать.
  2. Код обработки исключений помещается в CATCH. блокировать

В нашем примере блок TRY будет содержать код для подключения к серверу. Блок CATCH будет содержать код для подключения к резервному серверу.

Если сервер запущен, код в блоке CATCH будет проигнорирован. В случае, если сервер не работает, возникает исключение, и код в блоке catch будет выполнен.

Итак, вот как исключение обрабатывается в Java.

Синтаксис для использования try &catch

try{
    statement(s)
}
catch (exceptiontype name){
	statement(s)
}

Пример

Шаг 1) Скопируйте следующий код в редактор

class JavaException {
   public static void main(String args[]){
      int d = 0;
      int n = 20;
      int fraction = n/d;
     System.out.println("End Of Main");
   }
}

Шаг 2) Сохраните файл и скомпилируйте код. Запустите программу с помощью команды java JavaException

Шаг 3) Арифметическое исключение — деление на ноль показано ниже для строки № 5, а строка № 6 никогда не выполняется

Шаг 4) Теперь давайте посмотрим, как try and catch поможет нам обработать это исключение. Мы поместим исключение, вызывающее строку кода, в try блок, за которым следует catch блокировать. Скопируйте следующий код в редактор.

class JavaException {
 public static void main(String args[]) {
  int d = 0;
  int n = 20;
  try {
   int fraction = n / d;
   System.out.println("This line will not be Executed");
  } catch (ArithmeticException e) {
   System.out.println("In the catch Block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Шаг 5) Сохраните, скомпилируйте и запустите код. Вы получите следующий результат

Как видите, исключение обрабатывается, а также выполняется последняя строка кода. Также обратите внимание, что строка № 7 не будет выполнена, поскольку как только возникнет исключение, поток управления перейдет к блоку catch.

Примечание. Объект AritmeticException «e» содержит информацию о возникшем исключении, которая может быть полезна при выполнении действий по восстановлению.

Иерархия классов исключений Java

После выполнения одного оператора catch остальные игнорируются, и выполнение продолжается после блока try/catch. Вложенные блоки catch следуют иерархии исключений.

Пример: Чтобы понять вложенность блоков try и catch

Шаг 1) Скопируйте следующий код в редактор.

class JavaException {
 public static void main(String args[]) {
  try {
   int d = 1;
   int n = 20;
   int fraction = n / d;
   int g[] = {
    1
   };
   g[20] = 100;
  }
  /*catch(Exception e){
  	System.out.println("In the catch block due to Exception = "+e);
  }*/
  catch (ArithmeticException e) {
   System.out.println("In the catch block due to Exception = " + e);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("In the catch block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Шаг 2) Сохраните файл и скомпилируйте код. Запустите программу с помощью команды java JavaException. .

Шаг 3) Создается исключение ArrayIndexOutOfBoundsException. Измените значение int d на 0. Сохраните, скомпилируйте и запустите код.

Шаг 4 ) Должно быть сгенерировано исключение ArithmeticException.

Шаг 5) Раскомментируйте строку №10 до строки №12. Сохраните, скомпилируйте и запустите код.

Шаг 6) Ошибка компиляции? Это связано с тем, что Exception является базовым классом исключения ArithmeticException. Любое исключение, вызванное ArithmeticException, также может быть обработано классом Exception. Таким образом, блок catch ArithmeticException никогда не получит шанс быть выполненным, что делает его избыточным. Отсюда и ошибка компиляции.

Окончательная блокировка Java

Блок finallyвыполняется независимо от возникновения исключения в пробном блоке. Это необязательно для использования с блоком try.

 try {
  statement(s)
 } catch (ExceptiontType name) {

  statement(s)

 } finally {

  statement(s)

 }

В случае возникновения исключения в блоке try, блок finally выполняется после выполнения блока catch.

Пример

Шаг 1) Скопируйте следующий код в редактор.

class JavaException {
   public static void main(String args[]){
    try{
       int d = 0;
       int n =20;
       int fraction = n/d;
    }
  catch(ArithmeticException e){
    System.out.println("In the catch block due to Exception = "+e);
  }
  finally{
	System.out.println("Inside the finally block");
  }
}
}

Шаг 2) Сохраните, скомпилируйте и запустите код.

Шаг 3) Ожидаемый результат. Блок finally выполняется, несмотря на возбуждение исключения.

Шаг 4) Измените значение переменной d =1. Сохраните, скомпилируйте и запустите код и посмотрите на результат. Нижняя часть формы

Сводка :


java

  1. Обработка исключений Python с использованием оператора try, exclude и finally
  2. Обработка исключений Java
  3. Java попробуй... поймай
  4. Java перехватывает несколько исключений
  5. Обработка исключений C++:пример Try, Catch, Throw
  6. Метод Java String charAt() с примером
  7. Метод Java String endWith() с примером
  8. Java BufferedReader:как читать файл в Java с примером
  9. Алгоритм сортировки вставками в Java с примером программы
  10. Обработка исключений Python:попробовать, поймать, наконец и поднять [Пример]