Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java joga e joga

Java arremessos e arremessos


Neste tutorial, aprenderemos a usar a palavra-chave throw e throws para tratamento de exceções com a ajuda de exemplos.

Em Java, as exceções podem ser categorizadas em dois tipos:


Consulte Exceções Java para aprender em detalhes sobre exceções marcadas e não verificadas.

Normalmente, não precisamos lidar com exceções não verificadas. É porque as exceções não verificadas ocorrem devido a erros de programação. E é uma boa prática corrigi-los em vez de manuseá-los.

Este tutorial agora se concentrará em como lidar com exceções verificadas usando throw e throws .

Java lança palavra-chave


Usamos o throws palavra-chave na declaração do método para declarar o tipo de exceção que pode ocorrer dentro dele.

Sua sintaxe é:
accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

Como você pode ver na sintaxe acima, podemos usar throws para declarar várias exceções.

Exemplo 1:Java lança palavra-chave

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);
    }
  }
}

Saída
java.io.FileNotFoundException: test.txt (No such file or directory)

Quando executamos este programa, se o arquivo test.txt não existe, FileInputStream lança um FileNotFoundException que estende o IOException classe.

Se um método não trata exceções, o tipo de exceção que pode ocorrer dentro dele deve ser especificado no throws cláusula para que os métodos mais acima na pilha de chamadas possam tratá-los ou especificá-los usando throws palavra-chave em si.

O findFile() especifica que um IOException pode ser jogado. O main() O método chama esse método e trata a exceção se for lançada.

Lançando várias exceções


Veja como podemos lançar várias exceções usando o throws palavra-chave.
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());
    }
  }
}

Aqui, o findFile() especifica que ele pode lançar NullPointerException , IOException e InvalidClassException em seu throws cláusula.

Observe que não lidamos com o NullPointerException . Isso ocorre porque é uma exceção não verificada. Não é necessário especificá-lo no throws cláusula e tratá-la.

lança palavras-chave vs. tente...pegue...finalmente


Pode haver vários métodos que podem causar exceções. Escrevendo try...catch pois cada método será tedioso e o código se tornará longo e menos legível.



throws também é útil quando você verificou a exceção (uma exceção que deve ser tratada) que não deseja capturar em seu método atual.

Palavra-chave de lançamento Java


O throw palavra-chave é usada para lançar explicitamente uma única exceção.

Quando uma exceção é lançada, o fluxo de execução do programa é transferido do try bloco para o catch quadra. Usamos o throw palavra-chave dentro de um método.

Sua sintaxe é:
throw throwableObject;

Um objeto throwable é uma instância da classe Throwable ou subclasse do Throwable classe.

Exemplo 2:palavra-chave de lançamento Java

class Main {
  public static void divideByZero() {
    throw new ArithmeticException("Trying to divide by 0");
  }

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


Saída
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

Neste exemplo, estamos lançando explicitamente um ArithmeticException.

Observação: ArithmeticException é uma exceção não verificada. Geralmente não é necessário lidar com exceções não verificadas.

Exemplo 3:lançando exceção verificada

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());
    }
  }
}

Saída
File not found

O findFile() método lança um IOException com a mensagem que passamos para seu construtor.

Observe que, como é uma exceção verificada, devemos especificá-la no throws cláusula.

Os métodos que chamam este findFile() precisa lidar com essa exceção ou especificá-la usando throws palavra-chave em si.

Tratamos essa exceção no main () método. O fluxo de execução do programa é transferido do try bloquear para catch bloco quando uma exceção é lançada. Então, o resto do código no try bloco é ignorado e instruções no catch bloco são executados.

Java

  1. Variáveis ​​e literais Java
  2. Entrada e Saída Java Basic
  3. Expressões, instruções e blocos Java
  4. Classe e objetos Java
  5. Classe abstrata Java e métodos abstratos
  6. Java aninhado e classe interna
  7. Java captura múltiplas exceções
  8. Autoboxing e unboxing Java
  9. Java String replace(), replaceAll() e método replaceFirst()
  10. Métodos Java String toLowercase() e toUpperCase()