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

Java бросает и бросает

Java бросает и бросает

В этом руководстве мы научимся использовать ключевые слова throw и throws для обработки исключений с помощью примеров.

В Java исключения можно разделить на два типа:

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

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

В этом руководстве основное внимание будет уделено тому, как обрабатывать проверенные исключения с помощью throw. и throws .

<час>

Ключевое слово Java throws

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

Его синтаксис:

accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

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

<час>

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

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    // code that may produce 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 (No such file or directory)

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

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

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

<час>

Вызов нескольких исключений

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

import java.io.*;
class Main {
  public static void findFile() throws NullPointerException, IOException, InvalidClassException {
    
    // code that may produce NullPointerException
    … … … 

    // code that may produce IOException
    … … … 

    // code that may produce InvalidClassException 
    … … … 
  }

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

Здесь findFile() метод указывает, что он может выдать NullPointerException , IOException и InvalidClassException в его throws пункт.

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

<час>

выдает ключевое слово Vs. попробуй... поймай... наконец

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

throws также полезно, когда вы проверили исключение (исключение, которое необходимо обработать), которое вы не хотите перехватывать в своем текущем методе.

<час>

Ключевое слово бросания Java

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

При возникновении исключения поток выполнения программы переходит из try блокировать на catch блокировать. Мы используем throw ключевое слово в методе.

Его синтаксис:

throw throwableObject;

Выбрасываемый объект — это экземпляр класса Throwable. или подкласс Throwable класс.

<час>

Пример 2. Ключевое слово throw в Java

class Main {
  public static void divideByZero() {
    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:3)
    at Main.main(Main.java:7)
exit status 1

В этом примере мы явно выбрасываем ArithmeticException.

Примечание. ArithmeticException является непроверенным исключением. Обычно нет необходимости обрабатывать непроверенные исключения.

<час>

Пример 3. Генерация проверенного исключения

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    throw new IOException("File not found");
  }

  public static void main(String[] args) {
    try {
      findFile();
      System.out.println("Rest of code in try block");
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
  }
}

Вывод

File not found

findFile() метод выдает IOException с сообщением, которое мы передали его конструктору.

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

Методы, вызывающие этот findFile() необходимо либо обработать это исключение, либо указать его с помощью throws сами ключевые слова.

Мы обработали это исключение в main () метод. Поток выполнения программы переходит из try заблокировать до catch блокировать при возникновении исключения. Итак, остальная часть кода в try блок пропускается и операторы в catch блок выполняется.


java

  1. Переменные и литералы Java
  2. Базовый ввод и вывод Java
  3. Java-выражения, операторы и блоки
  4. Java-класс и объекты
  5. Абстрактный класс Java и абстрактные методы
  6. Вложенный и внутренний класс Java
  7. Java перехватывает несколько исключений
  8. Автоупаковка и распаковка Java
  9. Java String replace(), replaceAll() и replaceFirst()
  10. Методы строки Java toLowercase() и toUpperCase()