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

Обработка исключений Java

Обработка исключений Java

В этом руководстве мы узнаем о различных подходах к обработке исключений в Java на примерах.

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

Вот почему важно обрабатывать исключения. Вот список различных подходов к обработке исключений в Java.

<час>

1. Java блок try...catch

Блок try-catch используется для обработки исключений в Java. Вот синтаксис try...catch блокировать:

try {
  // code
}
catch(Exception e) {
  // code
}

Здесь мы поместили код, который может генерировать исключение, внутри try блокировать. Каждые try за блоком следует catch блокировать.

Когда возникает исключение, оно перехватывается catch блокировать. catch блок нельзя использовать без try блокировать.

Пример:обработка исключений с помощью try...catch

class Main {
  public static void main(String[] args) {

    try {

      // code that generate exception
      int divideByZero = 5 / 0;
      System.out.println("Rest of code in try block");
    }
    
    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
  }
}

Вывод

ArithmeticException => / by zero

В примере мы пытаемся разделить число на 0 . Здесь этот код генерирует исключение.

Для обработки исключения мы добавили код 5 / 0 внутри try блокировать. Теперь при возникновении исключения остальная часть кода внутри try блок пропущен.

catch блок перехватывает исключение, и операторы внутри блока перехвата выполняются.

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

<час>

2. Java окончательно заблокировать

В Java finally блок всегда выполняется независимо от того, есть исключение или нет.

finally блок необязателен. И для каждого try блок, может быть только один finally блокировать.

Основной синтаксис finally блок:

try {
  //code
}
catch (ExceptionType1 e1) { 
  // catch block
}
finally {
  // finally block always executes
}

Если возникает исключение, finally блок выполняется после try...catch блокировать. В противном случае он выполняется после блока try. Для каждого try блок, может быть только один finally блокировать.

<час>

Пример:обработка исключений Java с помощью блока finally

class Main {
  public static void main(String[] args) {
    try {
      // code that generates exception
      int divideByZero = 5 / 0;
    }

    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
    
    finally {
      System.out.println("This is the finally block");
    }
  }
}

Вывод

ArithmeticException => / by zero
This is the finally block

В приведенном выше примере мы делим число на 0. внутри try блокировать. Здесь этот код генерирует ArithmeticException .

Исключение перехватывается кодом catch блокировать. А затем finally блок выполняется.

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

<час>

3. Java throw и ключевое слово throws

Java throw ключевое слово используется для явного создания одного исключения.

Когда мы throw исключение, поток программы перемещается из try блокировать на catch блокировать.

Пример:обработка исключений с помощью Java throw

class Main {
  public static void divideByZero() {

    // throw an exception
    throw new ArithmeticException("Trying to divide by 0");
  }

  public static void main(String[] args) {
    divideByZero();
  }
}

Вывод

Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0
        at Main.divideByZero(Main.java:5)
        at Main.main(Main.java:9)

В приведенном выше примере мы явно бросаем ArithmeticException используя throw ключевое слово.

Точно так же throws ключевое слово используется для объявления типа исключений, которые могут возникнуть в методе. Он используется в объявлении метода.

Пример:Java выбрасывает ключевое слово

import java.io.*;

class Main {
  // declareing the type of exception
  public static void findFile() throws IOException {

    // code that may generate IOException
    File newFile = new File("test.txt");
    FileInputStream stream = new FileInputStream(newFile);
  }

  public static void main(String[] args) {
    try {
      findFile();
    }
    catch (IOException e) {
      System.out.println(e);
    }
  }
}

Вывод

java.io.FileNotFoundException: test.txt (The system cannot find the file specified)

Когда мы запускаем эту программу, если файл test.txt не существует, FileInputStream выдает FileNotFoundException который расширяет IOException класс.

findFile() указывает, что IOException можно кинуть. main() метод вызывает этот метод и обрабатывает исключение, если оно возникло.

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

Чтобы узнать больше, посетите раздел Java throw и throws.


java

  1. Операторы Java
  2. Java-комментарии
  3. Java для каждого цикла
  4. Java-строки
  5. Java-интерфейс
  6. Анонимный класс Java
  7. Java попробуй... поймай
  8. Java-проба с ресурсами
  9. Java-аннотации
  10. Утверждения Java